node.js连接数据库之封装数据的增删改查方法

1,在mongo文件夹下的db.js文件中封装公用的方法

注意: 

   1、封装之后的代码尽量不要去改动

   2、封装之后的代码尽量的满足不同的需求。

2,公共部分

const mongodb = require("mongodb");
const mongoClient = mongodb.MongoClient;
const ObjectId = mongodb.ObjectId;

3,封装连接到mongo对应数据库的方法

function _connect(cb){
    mongoClient.connect("mongodb://127.0.0.1:27017",{useUnifiedTopology: true },       (err,client)=>{
    if(err) console.log("连接失败")
       else{
            const db = client.db("ele");   //ele是我在MongoDB中创建的数据库名字
            cb(db); 
       }
   })
}

4,封装一些基本方法,写在module.exports={}中,

   1,插入一条记录insertOne

//collName:指定插入的集合(即表名)  insertObj:插入的内容
//insertOne添加方法
insertOne(collName,insertObj,cb){
        _connect(db=>{
            db.collection(collName).insertOne(insertObj,(err,results)=>{
                cb(err,results);
            })
        })
    }

2,查找多条数据find

//collName:指定集合;obj:是一个对象,包含sort,limit,skip,whereObj
    find(collName,obj={},cb){
        const {skip=0,limit=0,sort={},whereObj={}} = obj;  //解构赋值。
        _connect(db=>{ 
   db.collection(collName).find(whereObj).limit(limit).skip(skip).sort(sort).toArray((err,results)=>{
         cb(err,results);
        })
      })
    }

3,根据所传入的对象,找到其对应的一条数据findOne

 findOne(collName,whereObj,cb){
        _connect(db=>{
            db.collection(collName).findOne(whereObj,cb);
        })
    }

4, 根据ID获得详细数据findOne

findOneById(collName,id,cb){
    _connect(db=>{
            db.collection(collName).findOne({
                _id:ObjectId(id)
            },cb)
        })
    }

5, 根据条件获得数据的数量countDocuments

 count(collName,whereObj,cb){
        _connect(db=>{
            db.collection(collName).countDocuments(whereObj).then(count=>{
                cb(count);
            })
        })
    }

6,根据ID进行删除一条操作deleteOne

 deleteOneById(collName,id,cb){
        _connect(db=>{
            db.collection(collName).deleteOne({
                _id:ObjectId(id),// 将字符串转为ObjectId
            },cb)
        })
    }

7,根据ID进行修改.updateOne

upDateOneById(collName,id,upObj,cb){
        _connect(db=>{
            //upObj是修改的内容
            db.collection(collName).updateOne({
                _id:ObjectId(id)
            },upObj,cb)
        })
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值