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)
})
}