Node操作MongoDB

2022-09-14 15:18:50 浏览数 (2)

引入第三方模块 cnpm i mongodb

连接数据库

代码语言:javascript复制
let MongoClient = require('mongodb').MongoClient
let url = "mongodb://localhost:27017/"
MongoClient.connect(url,{useNewUrlParser:true,useUnifiedTopology:true},function(err,db){
     if(err)throw err
    var dbo = db.db('test')
...
})

数据增删改查

数据插入

代码语言:javascript复制
var myobj = {name:'tz',type:'1',like:['happy','test']}
    // //单条数据插入
dbo.collection('users').insertOne(myobj,function(err,res){
        if(err)throw err
        console.log('文档插入成功')
        db.close()
})

多条数据插入

代码语言:javascript复制
 var myobj = [
        {'name':'t','type':1,'address':'sc'},
        {'name':'a','type':1,'address':'sc'},
        {'name':'n','type':1,'address':'sc'},
    ]
     dbo.collection('users').insertMany(myobj,function(err,res){
        if(err)throw err
        console.log('文档插入成功插入数量为' res.insertedCount)
        db.close()
    })

查询所有数据

代码语言:javascript复制
 dbo.collection('users').find({}).toArray(function(err,result){
       if(err) throw err;
       console.log(result);
       db.close()
   })

where查询

代码语言:javascript复制
 var whereSingle = {'name':'a'}
 //多个查询
   var where = {
       'name':{
           $in:['a','t']
       }
   }
   dbo.collection('users').find(where).toArray(function(err,result){
    if(err) throw err;
    console.log(result);
    db.close()
})

连表查询

代码语言:javascript复制
 //连表查询
    //order =>production
    dbo.collection('orders').aggregate([
        {
            $lookup:
            {
                from:'products',//要连接的表
                localField:'product_id',//当前表的外键
                foreignField:'_id',//连接表(products )的主键
                as:'orderdetails'//生成数据的别名

            }
        }
    ]).toArray(function(err,res){
        if(err) throw err;
        console.log(JSON.stringify(res));
    })

更新

代码语言:javascript复制
//更新单个 //更新多个改成updateMany
    var whereStr = {name:'a'}
    var updateStr = {$set:{name:'修改a'}}
    dbo.collection('users').updateOne(whereStr,updateStr,function(err,res){
        if(err)throw err
        console.log('文档更新成功');
        db.close()
    })

排序

代码语言:javascript复制
  var mysort = {name:-1};//指定排序方式和字段
    dbo.collection('users').find().sort(mysort).skip(20).limit(10).toArray(function(err,result){
        if(err) throw err
        console.log(result);
        db.close()
    })

删除

代码语言:javascript复制
 //删除 单个 /多个deleteMany
    var whereStr = {name:'a'}
    dbo.collection('users').deleteOne(whereStr,function(err,obj){
        if(err) throw err;
        console.log('文档删除成功' obj.result.n);
        db.close()
    })

0 人点赞