Node.js连接MongoDB
安装模块
npm install mongodb
创建连接并插入数据
const MongoClient = require('mongodb').MongoClient;//引入模块
const url = 'mongodb://localhost:27017/' //连接数据库需要的地址
//连接数据库
MongoClient.connect(url,{useNewUrlParser:true,useUnifiedTopology:true}, (err,db)=>{
if(err) throw err;
let dbo = db.db('CyR') //连接的数据库名字,如果没有会自动创建
let myobj = {name:'老陈',type:'年轻人',like:['爬山','打代码','看书','打游戏']}
dbo.collection('users').insertOne(myobj,(err,res)=>{
if(err) throw err;
console.log('文档插入成功');
res.insertedCount; //返回内容为插入多少条数据
db.close(); //关闭数据库连接
})
//如果插入多条数据的话把需要插入的数据定为数组,insertOne方法改为insertMany即可
})
查找数据
MongoClient.connect(url,{useNewUrlParser:true,useUnifiedTopology:true}, (err,db)=>{
if(err) throw err;
let dbo = db.db('CyR') //连接的数据库名字,如果没有会自动创建
dbo.collection('users').find({}).toArray((err,result)=>{
if(err) throw err;
console.log('文档插入成功');
res.insertedCount; //返回内容为插入多少条数据
db.close(); //关闭数据库连接
})
//.find()方法为查找数据
})
更新数据
let where = {姓名:'李瑶'};
let updateStr = {$set:{最高学历:'一本'}}
dbo.collection('userinfo').updateOne(where, updateStr, (err,res)=>{
if(err) throw err;
res.result.nModified //返回结果为数据更新的条数
})
//updateOne()方法为更新一条数据
//updateMany()方法为更新多条数据
数据排序
let mysort = {身份证件号:1}
dbo.collection('userinfo').find().sort(mysort).skip(35).limit(3).toArray((err,res)=>{
if(err) throw err;
res.result.nModified //返回结果为数据更新的条数
})
删除数据
//删除单条数据
let whereStr = {"name":'老陈'}
dbo.collection('users').deleteOne(whereStr,(err,obj)=>{
if(err) throw err;
console.log(obj)
})
//删除多条数据
let whereStr = {"name":'老陈'}
dbo.collection('users').deleteMany(whereStr,(err,obj)=>{
if(err) throw err;
console.log(obj.result.n+ '条文档被删除')
})
连表查询
dbo.collection('user').aggregate([ //从user表开始-->左集合
{
$lookup:{
from: 'userinfo', //-->右集合 建立到userinfo表的联系 最后生成的数组内包含该表中符合的数据
localField: '姓名', //-->左集合join字段 通过该字段
foreignField: '姓名',//-->右集合join字段 和该字段的对比
as: 'hecheng' //生成新字段(数组类型) 内容为右集合中对比后符合的数据
}
}
]).toArray((err,res)=>{
if(err) throw err;
console.log(JSON.stringify(res))
})//建立user集合到userinfo集合的联系,