前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Node.js封装对mongodb操作的模块

Node.js封装对mongodb操作的模块

作者头像
用户1272076
发布2019-03-26 16:59:15
1.8K0
发布2019-03-26 16:59:15
举报
文章被收录于专栏:张培跃张培跃

张培跃

ID:laozhangsishu

不止于前

关注

增删改查:

代码语言:javascript
复制
var mongodb=require("mongodb");
var MongoClient=mongodb.MongoClient;
var connStr="mongodb://127.0.0.1:27017/";
//连接数据库
function _connect(cb){
    MongoClient.connect(connStr,function(err,client){
        if(err){
            console.log("失败");
        }else{
            //指定数据库的名字"bang"
            var db=client.db("bang");
            cb(db);
        }
    })
}
/***********************插入*******************************/
//插入一条记录
module.exports.insertOne=function(collection,obj,cb){
    _connect(function(db){
        db.collection(collection).insertOne(obj,function(err,results){
            cb(err,results);
        })
    })
}
//插入多条记录
/*
* collection:插入的集合,
* arr:插入的文档
* cb:回调函数。通过该函数返回执行的结果*/
module.exports.insertMany=function(collection,arr,cb){
    _connect(function(db){
        db.collection(collection).insertMany(arr,function(err,results){
            cb(err,results);
        })
    })
}
/*********************查找**********************************/
//根据条件查找记录数
module.exports.count=function(collection,whereObj,cb){
    _connect(function(db){
        db.collection(collection).count(whereObj).then(function(count){
            cb(count);
        })
    })

}
/*查找
* collection:集合
* obj:
*   whereObj:条件,默认是{}
*   sortObj:排序,默认是{}
*   limit:显示提定条数,默认是0
*   skip:跳过指定条数,默认是0*/
module.exports.find=function(collection,obj,cb){
    //如果有条件,将条件赋值给obj.whereObj,没有传条件默认为{}
    obj.whereObj=obj.whereObj||{};
    obj.sortObj=obj.sortObj||{};
    obj.limit=obj.limit||0;
    obj.skip=obj.skip||0;
    _connect(function(db){
        db.collection(collection)
            .find(obj.whereObj)
            .sort(obj.sortObj)
            .limit(obj.limit)
            .skip(obj.skip)
            .toArray(function(err,results){
            cb(err,results);
        })
    })
}
/*
* 查找一条记录*/
module.exports.findOne=function(collection,whereObj,cb){
    _connect(function(db) {
        db.collection(collection).findOne(obj, function (err, results) {
            cb(err, results);
        });
    });
}
//根据ID来查找记录
module.exports.findOneById=function(collection,id,cb){
    _connect(function(db) {
        db.collection(collection).findOne({_id: mongodb.ObjectId(id)}, function (err, results) {
            cb(err, results);
        });
    });
}
/*********************修改******************************************/
//根据ID修改一条记录
module.exports.updateOneById=function(collection,id,upObj,cb){
    _connect(function(db) {
        db.collection(collection).updateOne({_id:mongodb.ObjectId(id)}, upObj, function (err, results) {
            cb(err, results);
        })
    });
}
//修改一条记录
module.exports.updateOne=function(collection,whereObj,upObj,cb){
    _connect(function(db) {
        db.collection(collection).updateOne(whereObj, upObj, function (err, results) {
            cb(err, results);
        })
    });
}
//修改多条记录
module.exports.updateMany=function(collection,whereObj,upObj,cb){
    db.collection(collection).updateMany(whereObj,upObj,function(err,results){
        cb(err,results);
    })
}
/**********************删除**************************************/
//根据ID来删除一条记录
module.exports.deleteOneById=function(collection,id,cb){
    _connect(function(db) {
        db.collection(collection).deleteOne({_id: mongodb.ObjectId(id)}, function (err, results) {
            cb(err, results);
        })
    });
}
//删除一条记录
module.exports.deleteOne=function(collection,whereObj,cb){
    _connect(function(db) {
        db.collection(collection).deleteOne(whereObj, function (err, results) {
            cb(err, results);
        })
    });
}
//删除多条记录
module.exports.deleteMany=function(collection,whereObj,cb){
    _connect(function(db) {
        db.collection(collection).deleteMany(whereObj, function (err, results) {
            cb(err, results);
        })
    });
}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-07-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 张培跃 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档