1. 程式人生 > >node學習篇——mongodb增刪改查操作

node學習篇——mongodb增刪改查操作

題外話:

             前段時間裡,通過傳智部落格的學習。對於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(); }; }); })

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

           專案開發過程中,效率永遠是排在第一位。貫穿於整個專案中無非便是增刪改查,將其封裝起來可以大大提高開發效率。