zoukankan      html  css  js  c++  java
  • 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);
                });
            });
        });
    };
  • 相关阅读:
    CLR via C#
    一些写英文简历的词汇
    组合与组合数
    A lowlevel Look at the ASP.NET Architecture
    \r与\n的区别,\r\n与\n或\r的区别(C语言/C#)
    Canvas lineWidth 属性 【每日一段代码18】
    程序员三大世界观 如何看待HTML5
    Canvas运用样式与颜色fillStyle【每日一段代码15】
    Canvas绘制路径:贝塞尔曲线【每日一段代码12】
    Canvas绘制弧形【每日一段代码10】
  • 原文地址:https://www.cnblogs.com/think_fish/p/3615736.html
Copyright © 2011-2022 走看看