NodeJs/ExpressJs--连接Mongodb数据库(增删改查)

安装:

npm install mongodb --save / cnpm install mongodb --save-dev

网址:
https://docs.mongodb.com/getting-started/node/introduction/
https://docs.mongodb.com/getting-started/node/query/ 

引入Mongodb

var MongoClient = require ('mongodb').MongoClient;

数据库地址

let dataBaseUrl = 'mongodb://localhost:27017/数据库名';

案例:

app.js

let express = require('express');
// 数据库引用
let MongoClient = require('mongodb').MongoClient;

let app = express();

// 数据库连接地址,最后的斜杠表示数据库名字
let dataBaseUrl = 'mongodb://localhost:27017/person';
/*
app.get('/',(req,res) => {
    // 连接数据库,这是一个异步操作
    MongoClient.connect(dataBaseUrl,(err,db) => {
        res.writeHead(200,{"Content-Type":"text/html;Charset=utf-8"});
        if(err) {
            res.send('数据库连接失败!')
        }else{
            res.write('恭喜,数据库已经成功连接!\n');
            // 存在兼容性问题
            db.collection('student').insertOne({'name':"honghong",'age':22},(err,result) => {
                if(err) {
                    res.send('数据库写入失败!');
                    return;
                }else{
                    res.write('恭喜,数据已经成功插入!');
                    res.end();
                    //关闭数据库
                    db.close();
                }
            })
        }
    });
});
*/

/*
// 增加数据
app.get('/',(req,res) => {
    // 连接数据库,这是一个异步操作
    MongoClient.connect(dataBaseUrl,(err,client) => {
        res.writeHead(200,{"Content-Type":"text/html;Charset=utf-8"});
        if(err) {
            res.send('数据库连接失败!')
        }else{
            res.write('恭喜,数据库已经成功连接!\n');
            //3.0新写法
            let db = client.db("person");
            db.collection('student').insertOne({'name':"honghong1",'age':22},(err,result) => {
                if(err) {
                    res.send('数据库写入失败!');
                    return;
                }else{
                    res.write('恭喜,数据已经成功插入!');
                    res.end();
                    //关闭数据库
                    client.close();
                }
            })
        }
    });
});
*/
/*
// 删除数据
app.get('/',(req,res) => {
    MongoClient.connect(dataBaseUrl,(err,client) => {
        res.writeHead(200,{"Content-Type":"text/html;Charset=utf-8"});
        if(err) {
            res.send('数据库连接失败!')
        }else{
            res.write('数据库连接成功!');
            let db = client.db('person');
            db.collection('student').deleteMany({'name':'honghong'},(err,result) => {
                if(err) {
                    res.send('数据删除失败!')
                    return false;
                }else{
                    console.log(result)
                    res.write("数据删除成功!");
                    res.end();
                    client.close()
                }
            })
        }
    })
})
*/
/*
// 修改数据
app.get('/',(req,res) => {
    res.writeHead(200,{"Content-Type":"text/html;Charset=utf-8"});
    MongoClient.connect(dataBaseUrl,(err,client) => {
        if(err){
            res.send('数据库连接失败!');
        }else{
            res.write('数据库连接成功!');
            let db = client.db('person');
            db.collection('student').updateOne({'name':'honghong1'},{$set:{'age':30}},(err,result) => {
                if(err){
                    res.send('更新数据失败!');
                }else{
                    res.write('更新数据成功!');
                    res.end();
                    client.close()
                }
            })
        }
    })
})
*/

/*
// 查询数据
app.get('/',(req,res) => {
    res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});
    MongoClient.connect(dataBaseUrl,(err,client) => {
        if(err) {
            res.send('数据库连接失败!')
        }else{
            res.write('数据库连接成功!');
            let db = client.db('person');
            db.collection('student').find().toArray((err,result) => {
                if(err){
                    res.send('查询数据失败!')
                }else{
                    res.write('查询数据成功!');
                    console.log(result);
                    console.log(result instanceof Array);//true
                    res.end();
                    client.close()
                }
            })
        }
    })
})
*/

/*
// 排序
app.get('/',(req,res) => {
    res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});
    MongoClient.connect(dataBaseUrl,(err,client) => {
        if(err){
            res.send('数据库连接失败!')
        }else{
            res.write('数据库连接成功!');
            let db = client.db('person');
            db.collection('student').find().sort({"age":1}).toArray((err,result) => {
                if(err) {
                    res.send('排序失败!')
                }else{
                    res.write('排序成功!');
                    console.log(result);
                    res.end();
                    client.close();
                }
            })
        }
    })
})
*/
/*
// 查询分页
app.get('/',(req,res) => {
    MongoClient.connect(dataBaseUrl,(err,client) => {
        res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});
        if(err) {
            res.send('数据库连接失败!')
        }else{
            res.write('数据库连接成功!');
            let db = client.db('person');
            db.collection('student').find().limit(5).toArray((err,result) => {
                if(err) {
                    res.send("查询分页失败!")
                }else{
                    res.write('查询分页成功!');
                    console.log(result);
                    res.end();
                    client.close()
                }
            })
        }
    })
})
*/

/*
// 跳过的条数
app.get('/',(req,res) => {
    MongoClient.connect(dataBaseUrl,(err,client) => {
        res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});
        if(err) {
            res.send('数据库连接失败!')
        }else{
            res.write('数据库连接成功!');
            let db = client.db('person');
            db.collection('student').find().skip(2).toArray((err,result) => {
                if(err){
                    res.send("跳过的条数查询失败!")
                }else{
                    res.write("跳过的条数查询成功!");
                    console.log(result);
                    res.end();
                    client.close()
                }
            })
        }
    })
})
*/

// $lookup 实现左连接
app.get('/',(req,res) => {
    MongoClient.connect(dataBaseUrl,(err,client) => {
        res.writeHead(200,{"Content-Type":"text/html;charset=utf8"});
        if(err) {
            res.send('数据库连接失败!');
        }else{
            res.write('数据库连接成功!');
            let db = client.db('person');
            db.collection('student').aggregate([
                {
                    $lookup:
                        {
                            from:'teacher',// 右集合(关联到teacher表)
                            //localField、foreignField这两个属性在两张表中都有
                            localField:"neme",// 左集合 join 字段(本地)
                            foreignField:"neme",// 右集合 join 字段(外部)
                            as:'studentTeacher'// 新生成字段(类型array)
                        }
                }
            ]).toArray((err,result) => {
                if(err) {
                    res.send('左连接失败!')
                }else{
                    res.write('左连接成功!');
                    // 序列化成json字符串
                    console.log(JSON.stringify(result));
                    res.end();
                    client.close()
                }
            })
        }
    })
})

app.listen(8002)

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值