/*
@@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);
});
});
});
};

MongoHelper的更多相关文章

  1. C# mongohelper的初始化及账户密码设置

    MongoClientSettings mongoSettings = new MongoClientSettings(); TimeSpan t = ); mongoSettings.Connect ...

  2. Python mongoHelper模块

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' Defines a MongoOperator class and allows you to m ...

  3. MongoHelper.cs

    using System; using MongoDB.Bson; using MongoDB; using System.Web; using MongoDB.Driver; namespace Y ...

  4. 模拟搭建Web项目的真实运行环境(七)

    下面这个是mongo驱动的小案例,里面也有涉及到一点redis的操作 https://github.com/SuperRocky/MyMongoDriver 接下来通过几张图片主要介绍一下每个文件的具 ...

  5. MongoDB的简单操作(asp.net)

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using MongoDB.D ...

  6. MongoDB 之C#实践

    官方驱动:https://github.com/mongodb/mongo-csharp-driver/downloads.下载后,还提供了一个酷似msdn的帮助文档. samus驱动:https:/ ...

  7. C#操作Mongodb

    因为MongoDb 跨平台,可以免费使用,读写效率高,集群搭建简单,可以水平扩展等各种因素. 我决定研究一下Mongodb,在查看了相关文档后发现它对C#的支持不错,而且还有现成的C#的驱动, 新版的 ...

  8. 用c#操作Mongodb(附demo)

    因为需要,写了一个基于泛型的helper,这样要使用起来方便一点. 为了大家也不重复造轮子,所以发出来希望能帮到谁. 复杂的查询最好用linq,这也是mongodb官方建议的. mongodb的C#配 ...

  9. [MongoDB]对数组操作

    摘要 在实际开发中遇到更新某个document中的数组的值,这里做一下记录. 这里使用的驱动为 using MongoDB.Bson;using MongoDB.Driver; 相关文章 [Mongo ...

随机推荐

  1. Redis学习笔记-常用命令篇(Centos7)

    redis提供了丰富的命令,这些命令可以在linux终端使用.在各类语言中,这些命令都有对应的方法. 一.键值相关 1.keys 返回满足给定pattern的所有key 127.0.0.1:6379& ...

  2. html模拟组织架构横向展开

    近期看到不少人有相似的需求.实现组织架构的横向展开,显示.无聊就做了一下.先看下终于的效果图 兼容各大主流浏览器,而且支持IE6.7,8,不同的是排除标签圆角效果外,资源文件:文件下载地址 主流浏览器 ...

  3. 打造基于jQuery的日期选择控件

    终于把jQuery拼写正确了哈,哈哈javascript也是区分大小写的,所以确实不能写错,今天我来和大家分享的是日期选择控件的实现,功能也许不够强大,但是能够满足需求. 我之前也写过(正确的说是改过 ...

  4. Loararunner录制脚本

    LoadRunner录制 1.启动LoadRunner,用管理员方式打开,选择 “Create/Edit Scripts” 2.从这两个方式任意方式打开脚本页面 3.选择协议,这里我们举例子,用“We ...

  5. 用arm-linux-gnueabihf移植MP3播放器libmad-0.15.1b的时候出现错误提示

    diff --git a/package/libmad/libmad-0.15.1b-thumb2-fixed-arm.patch b/package/libmad/libmad-0.15.1b-th ...

  6. Visual Studio Team Foundation Server 2013

    下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=42308 Microsoft Visual Studio Team Foun ...

  7. [转][C#]压缩解压缩类 GZipStream

    本文来自:https://msdn.microsoft.com/zh-cn/library/system.io.compression.gzipstream(v=vs.100).aspx using ...

  8. ROS多线接入和多线对外提供服务的完整做法,谁进谁出,电信进电信出,联通进联通出,移动进移动出

    1.网卡接入: 电信移动联通,三线接入,LAN是局域网. 5.从www.tcp5.com,下载联通和移动的路由表,并导入.这边简单说下导入步骤,下载rsc文件,上传到ROS的FTP上,然后用命令imp ...

  9. 机器学习中的python常用函数

    glob模块 说明: 1.glob是python自己带的一个文件操作相关模块,用它可以查找符合自己目的的文件,就类似于Windows下的文件搜索, 支持通配符操作 *.?.[] 这三个通配符,*代表0 ...

  10. Spring batch学习 (1)

    Spring Batch 批处理框架 埃森哲和Spring Source研发 主要解决批处理数据的问题,包含并行处理,事务处理机制等.具有健壮性 可扩展,和自带的监控功能,并且支持断点和重发.让程序员 ...