您的位置:首页 > 数据库 > Mongodb

Node.js封装对mongodb操作的模块

2018-07-22 10:55 525 查看
var mongodb=require("mongodb");
var MongoClient=mongodb.MongoClient;
var connStr="mongodb://127.0.0.1:27017/";
//连接数据库
function _connect(cb){
MongoClient.connect(connStr,function(err,client){
if(err){
console.log("失败");
}else{
//指定数据库的名字"bang"
var db=client.db("bang");
cb(db);
}
})
}
/***********************插入*******************************/
//插入一条记录
module.exports.insertOne=function(collection,obj,cb){
_connect(function(db){
db.collection(collection).insertOne(obj,function(err,results){
cb(err,results);
})
})
}
//插入多条记录
/*
* collection:插入的集合,
* arr:插入的文档
* cb:回调函数。通过该函数返回执行的结果*/
module.exports.insertMany=function(collection,arr,cb){
_connect(function(db){
db.collection(collection).insertMany(arr,function(err,results){
cb(err,results);
})
})
}
/*********************查找**********************************/
//根据条件查找记录数
module.exports.count=function(collection,whereObj,cb){
_connect(function(db){
db.collection(collection).count(whereObj).then(function(count){
cb(count);
})
})

}
/*查找
* collection:集合
* obj:
*   whereObj:条件,默认是{}
*   sortObj:排序,默认是{}
*   limit:显示提定条数,默认是0
*   skip:跳过指定条数,默认是0*/
module.exports.find=function(collection,obj,cb){
//如果有条件,将条件赋值给obj.whereObj,没有传条件默认为{}
obj.whereObj=obj.whereObj||{};
obj.sortObj=obj.sortObj||{};
obj.limit=obj.limit||0;
obj.skip=obj.skip||0;
_connect(function(db){
db.collection(collection)
.find(obj.whereObj)
.sort(obj.sortObj)
.limit(obj.limit)
.skip(obj.skip)
.toArray(function(err,results){
cb(err,results);
})
})
}
/*
* 查找一条记录*/
module.exports.findOne=function(collection,whereObj,cb){
_connect(function(db) {
db.collection(collection).findOne(obj, function (err, results) {
cb(err, results);
});
});
}
//根据ID来查找记录
module.exports.findOneById=function(collection,id,cb){
_connect(function(db) {
db.collection(collection).findOne({_id: mongodb.ObjectId(id)}, function (err, results) {
cb(err, results);
});
});
}
/*********************修改******************************************/
//根据ID修改一条记录
module.exports.updateOneById=function(collection,id,upObj,cb){
_connect(function(db) {
db.collection(collection).updateOne({_id:mongodb.ObjectId(id)}, upObj, function (err, results) {
cb(err, results);
})
});
}
//修改一条记录
module.exports.updateOne=function(collection,whereObj,upObj,cb){
_connect(function(db) {
db.collection(collection).updateOne(whereObj, upObj, function (err, results) {
cb(err, results);
})
});
}
//修改多条记录
module.exports.updateMany=function(collection,whereObj,upObj,cb){
db.collection(collection).updateMany(whereObj,upObj,function(err,results){
cb(err,results);
})
}
/**********************删除**************************************/
//根据ID来删除一条记录
module.exports.deleteOneById=function(collection,id,cb){
_connect(function(db) {
db.collection(collection).deleteOne({_id: mongodb.ObjectId(id)}, function (err, results) {
cb(err, results);
})
});
}
//删除一条记录
module.exports.deleteOne=function(collection,whereObj,cb){
_connect(function(db) {
db.collection(collection).deleteOne(whereObj, function (err, results) {
cb(err, results);
})
});
}
//删除多条记录
module.exports.deleteMany=function(collection,whereObj,cb){
_connect(function(db) {
db.collection(collection).deleteMany(whereObj, function (err, results) {
cb(err, results);
})
});
}

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: