MongoHelper

/*
@@decription mongodbHelper
@@version 1.0
@@author think_fish&&dachie
@@copyright think_fish@@dachie
*/

var mongodb=require('./db.js');


function Helper(){};
module.exports=Helper;

/*
@@新增方法
@@tbName:表名      :string
@@obj:新增对象     :{}
@@callback:回调    :function
@@ensure:唯一索引 :{}
*/
Helper.execInsert=function(tbName,obj,callback,ensure){
     ensure=ensure||{};
     mongodb.open(function (err,db) {
         if(err){
            mongodb.close();
             return callback(err);
         }
         db.collection(tbName,function(err,collection){
             if(err){
                 mongodb.close();
                 return callback(err);
             }
             collection.ensureIndex(ensure,{'unique':true});
            collection.insert(obj,{safe:true},function  (err,doc) {
                mongodb.close();
                callback(err,doc);
            });

         });
     })
}

/*
@@修改方法
@@tbName 表名    :string
@@oldObj 原对象      :{}
@@newObj 新对象      :{}
@@callback 回调      :function
*/
Helper.execUpdate =function(tbName,oldObj,newObj,callback) {
    mongodb.open(function  (err,db) {
        if(err){
           mongodb.close();
           return callback(err);
        }
        db.collection(tbName,function(err,collection){
            if(err){
                mongodb.close();
                return callback(err);
            }
            collection.update(oldObj,{
                $set:newObj
            },{safe:true},function(err,doc){
                mongodb.close();
                callback(err,doc);
            });
        });
    })
}

/*
@@删除方法
@@tbName 表名    :string
@@delObj 原对象      :{}
@@callback 回调      :function
*/
Helper.execRemove=function(tbName,delObj,callback){
    mongodb.open(function (err,db) {
         if(err){
            mongodb.close();
             return callback(err);
         }
         db.collection(tbName,function(err,collection){
             if(err){
                 mongodb.close();
                 return callback(err);
             }
            collection.remove(delObj,{safe:true},function  (err,count) {
                mongodb.close();
                callback(err,count);
            });

         });
     })
}

/*
@@删除方法
@@tbName 表名    :string
@@query 查询条件     :{}
@@callback 回调      :function
*/
Helper.find=function(tbName,query,callback,sort){
    mongodb.open(function(err,db){
        if(err){
            mongodb.close();
            return callback(err);
        }

        db.collection(tbName,function(err,collection){
            if(err){
                mongodb.close();
                return callback(err);
            }

            collection.find(query).sort(sort).toArray(function(err,list){
                mongodb.close();
                callback(err,list);
            });
        });
    });
}

/*
@@删除方法
@@tbName 表名    :string
@@query 查询条件     :{}
@@callback 回调      :function
*/
Helper.findOne=function(tbName,query,callback){
    mongodb.open(function(err,db){
        if(err){
            mongodb.close();
            return callback(err);
        }
        db.collection(tbName,function(err,collection){
            if(err){
                mongodb.close();
                return callback(err);
            }
            collection.findOne(query,function(err,doc){
                mongodb.close();
                callback(err,doc);
            });
        });
    });
};
原文地址:https://www.cnblogs.com/think_fish/p/3615736.html