美文网首页
Node.js封装mongodb数据库操作

Node.js封装mongodb数据库操作

作者: BeiYan | 来源:发表于2020-10-30 16:39 被阅读0次
史前最帅程序员

连接数据库

mongo.js

var mongodb=require("mongodb");
var client=mongodb.MongoClient;
var connStr="mongodb://127.0.0.1:27017";

module.exports = {
    conn: function (cb) {
        client.connect(connStr,{ useUnifiedTopology: true, useNewUrlParser: true}, function (err, client) {
            if (err) {
                console.log("数据库连接失败");
            } else {
                //指定数据库的名字"wx"
                var db = client.db("wx");
                cb(db);
            }
        })
    }
};

封装基本增删改查操作

common.js

const mongodb = require('../db/mongo');

module.exports = {

    /**
     * 查询
     * @param collection 集合名称
     * @param params 查询条件
     * @param cb
     */
    query: function (collection, params, cb) {
        mongodb.conn(function (db) {
            db.collection(collection)
                .find(params)
                .toArray(function (err, results) {
                    cb(err, results);
                });
        });
    },

    /**
     * 查询一条记录
     * @param collection 集合名称
     * @param params 查询条件
     * @param cb
     */
    queryOne: function (collection, params, cb) {
        mongodb.conn(function (db) {
            db.collection(collection).findOne(params, function (err, results) {
                cb(err, results);
            });
        });
    },


    /**
     * 查询所有数据(分页)
     * @param collection 集合名称
     * @param obj 查询参数
     * @param cb
     */
    queryAll: function (collection, obj, cb) {
        obj.params = obj.params || {};
        obj.sortObj = obj.sortObj || {};
        obj.limit = obj.limit || 10;
        obj.page = obj.page || 0;
        obj.skip = obj.limit * obj.page;
        mongodb.conn(function (db) {
            db.collection(collection)
                .find(obj.whereObj)
                .sort(obj.sortObj)
                .limit(obj.limit)
                .skip(obj.skip)
                .toArray(function (err, results) {
                    cb(err, results);
                });
        });
    },

    /**
     * 插入一条数据
     * @param collection 集合名称
     * @param obj 数据
     * @param cb 返回值
     */
    insert: function (collection, obj, cb) {
        mongodb.conn(function (db) {
            db.collection(collection).insertOne(obj, function (err, results) {
                cb(err, results);
            })
        });

    },

    /**
     * 批量插入数据
     * @param collection 集合名称
     * @param arr 数组
     * @param cb 返回值
     */
    insertBatch: function (collection, arr, cb) {
        mongodb.conn(function (db) {
            db.collection(collection).insertMany(obj, function (err, results) {
                cb(err, results);
            })
        });

    },

    /**
     * 修改一条记录
     * @param collection 集合名称
     * @param whereObj 条件
     * @param upObj 更新内容
     * @param cb 返回值
     */
    update: function (collection, whereObj, upObj, cb) {
        mongodb.conn(function (db) {
            db.collection(collection).updateOne(whereObj, upObj, function (err, results) {
                cb(err, results);
            })
        });
    },

    /**
     * 删除一条记录
     * @param collection 集合名称
     * @param whereObj 条件
     * @param cb 返回值
     */
    delete:function(collection,whereObj,cb){
        mongodb.conn(function(db) {
            db.collection(collection).deleteOne(whereObj, function (err, results) {
                cb(err, results);
            })
        });
    }

};

测试调用

let express = require('express');
let router = express.Router();

let common = require('../db/common');

router.get('/', (req, res) => {
    common.query("soul",{},(err,result)=>{
        res.send(result);
    });
});

module.exports = router;

相关文章

网友评论

      本文标题:Node.js封装mongodb数据库操作

      本文链接:https://www.haomeiwen.com/subject/ydciwqtx.html