node学习篇——mongodb增删改查操作

来源:互联网 发布:甜甜圈软件 编辑:程序博客网 时间:2024/06/05 21:10

题外话:

             前段时间里,通过传智博客的学习。对于mongodb的了解算是入门了。在这篇文章里,我进行的并不是对mongodb的语法概括,而是对mongodb的增删改查进行一系列的封装、总结。

    正文:

            在一个项目中,创建一个models文件夹并定义一个DAO层进行增删改查的封装。

           

            总共通过6个步骤进行设计配置。

          (进行数据库操作的都有mongodb官方文档进行参考,http://mongodb.github.io/node-mongodb-native/2.2/api/)

             1. 连接数据库。默认端口为27017。将数据库连接进行封装以便为接下来的一系列数据库操作调用。

             
var MongoClient = require('mongodb').MongoClient;
function _connectionDB(callback) {
var url = 'mongodb://127.0.0.1:27017/mongos';
MongoClient.connect(url, function(err, db) {
if (err){
callback("连接失败");
return
}
// console.log("连接成功");
callback(err,db);
});
}

              2.插入文档。向外暴露插入函数,并进行callback回调进行数据库操作。

             
exports.insertOne=function (collectionName, json, callback) {
_connectionDB(function (err, db) {
db.collection(collectionName).insertOne(json,function (err,result) {
callback(err,result);
db.close();
};
})
})

             3.查询文档。查是处理逻辑比较多的一个操作,find函数中,实用skip与limit进行限制条数查询,通过sort进行排序查询。可以实现分页、排序等功能。

             
exports.find=function (collectionName, json,args, callback) {
var result=[];
var skipNumber=args.pageamount*args.page||0;
var page=parseInt(args.pageamount)||0;
var sort=args.sort||0;
_connectionDB(function (err, db) {
var collection = db.collection(collectionName).find(json).skip(skipNumber).limit(page).sort(sort);
collection.each(function(err, docs) {
if (err){
callback("查询失败",null);
return
}
if (docs!=null){
result.push(docs);
}else{
callback(null,result);
db.close();
} });
};
})

              4.删除文档。向外暴露一个函数,并传入一个json形式的数据进行数据库删除。

              
exports.deleteOne=function (collectionName, json, callback) {
_connectionDB(function (err, db) {
var collection = db.collection(collectionName);
collection.deleteMany(json,function(err, result) {
if (err){
callback(err,null);
return
}
callback(null,result);
db.close();
}); })
};

              5.修改文档。使用$set修改器进行数据库的修改。同样需要向外暴露函数。

 
exports.update=function (collectionName, json1,json2, callback) {
_connectionDB(function (err, db) {
var collection = db.collection(collectionName);
collection.updateOne(json1 , { $set: json2}, function(err, result) {
callback(null,result);
db.close();
}); })
};

            6.查看文档的总条数。

           
exports.getAllCount=function (collectionName, callback) {
_connectionDB(function (err, db) {
db.collection(collectionName).count({}).then(function(count) {
callback(count);
db.close();
};
});
})

           至此,增删改查的操作便完成了。

           项目开发过程中,效率永远是排在第一位。贯穿于整个项目中无非便是增删改查,将其封装起来可以大大提高开发效率。

原创粉丝点击