引入第三方模块 cnpm i mongodb
连接数据库
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')
...
})
数据增删改查
数据插入
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()
})
多条数据插入
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()
})
查询所有数据
dbo.collection('users').find({}).toArray(function(err,result){
if(err) throw err;
console.log(result);
db.close()
})
where查询
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()
})
连表查询
//连表查询
//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));
})
更新
//更新单个 //更新多个改成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()
})
排序
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()
})
删除
//删除 单个 /多个deleteMany
var whereStr = {name:'a'}
dbo.collection('users').deleteOne(whereStr,function(err,obj){
if(err) throw err;
console.log('文档删除成功'+obj.result.n);
db.close()
})