Node.js连接MongoDB

本文详细介绍使用Node.js连接MongoDB数据库的方法,包括模块安装、数据的增删改查及连表查询等核心操作,适合初学者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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集合的联系,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值