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

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

2017-05-29 10:46 489 查看
题外话:
             前段时间里,通过传智博客的学习。对于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();
}; });
})

           至此,增删改查的操作便完成了。
           项目开发过程中,效率永远是排在第一位。贯穿于整个项目中无非便是增删改查,将其封装起来可以大大提高开发效率。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: