node.js封装mongodb增删改查函数的操作

node.js封装mongodb增删改查函数的操作

版权声明:本文为博主原创文章,转载请注明原文地址https://blog.csdn.net/weixin_42185136/article/details/86625473
mongo使用是,我们首先用npm install mongodb,先来下载我们使用的mongodb包,下载后应该是3.0以上的版本,早一点的是2.0的版本,2.0版本和3.0版本在语法使用上还是有差异的,2.0的应该现在用的不多了吧,我就先写一下3.0版本的封装。声明一下我的mongodb的版本是3.1.10。

查看mongodb版本在框架中是在package.json,如果不是使用框架的,在使用npm install安装后会提示版本号
首先我先写一些平常我们使用的方法:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/mydb";

//database--数据库名,table--表名, data--数据,updateStr--修改后的数据

/*这里是查找数据*/
const findMemo = function (database,table,data) {
    return new Promise((resolve, reject) => {
        MongoClient.connect(url,{ useNewUrlParser: true }, function (err, db) {
            if (err) {
                console.log(err);
                resolve(err)
            } else {
                var dbo = db.db(database);
                dbo.collection(table).find(data).toArray((err, result) => {
                    if (err) {
                        reject(err)
                    } else {
                        resolve(result)
                    }
                    db.close();
                });
            }
        });
    })
};
/*这里是插入数据*/
const addMemo = function (database,table, data) {
    return new Promise((resolve, reject) => {
        MongoClient.connect(url, { useNewUrlParser: true }, function (err, db) {
            if (err) {
                console.log(err);
                resolve(err)
            } else {
                var dbo = db.db(database);
                dbo.collection(table).insertOne(data, (err, result) => {
                    if (err) {
                        reject(err)
                    } else {
                        resolve(result)
                    }
                    db.close();
                });
            }
        });
    })
};

/*这里是修改数据*/
const updateMemo = function (database,table, data, updateStr) {
    return new Promise((resolve, reject) => {
        MongoClient.connect(url, {useNewUrlParser: true}, function (err, db) {
            if (err) {
                console.log(err);
                resolve(err)
            } else {
                var dbo = db.db(database);
                dbo.collection(table).updateOne(data, updateStr, (err, result) => {
                    if (err) {
                        reject(err)
                    } else {
                        resolve(result)
                    }
                    db.close();
                });
            }
        });
    })
};
/*这里是删除数据*/
const delMemo = function (database,table,data) {
    return new Promise((resolve, reject) => {
        MongoClient.connect(url,{ useNewUrlParser: true },  function (err, db) {
            if (err) {
                console.log(err);
                resolve(err)
            } else {
                var dbo = db.db(database);
                dbo.collection(table).removeOne(data, (err, result) => {
                    if (err) {
                        reject(err)
                    } else {
                        resolve(result)
                    }
                    db.close();
                });
            }
        });
    })
};

module.exports = {
    findMemo, addMemo, updateMemo, delMemo
};

3.0版本使用

//增加数据
await ctx.db2.addMemo("mydb","user",{"name":"张三","pwd":123})
//删除数据
await ctx.db2.delMemo("mydb","user",{"name":"张三","pwd":123})
//修改数据
await ctx.db2.updateMemo("mydb","user",{"name":"张三","pwd":123},{$set{"name":"李四","pwd":456}})
//查找数据
await ctx.db2.findMemo("mydb","user",{"name":"张三","pwd":123})

2.0版本封装mongodb的增删改查

//dbname是数据库名称,dataform是集合名称
function mongodbModel(dbname,dataform) {
    var MongoClient;
    var DB_CONN_STR;
    this.init = function() {
        MongoClient = require('mongodb').MongoClient;
        DB_CONN_STR = 'mongodb://localhost:27017/'+dbname;
    }

    /*这里是插入数据*/
    this.insert = function(data,callback) {
         MongoClient.connect(DB_CONN_STR, function(err, db) {
            console.log('连接成功')
            var collection = db.collection(dataform);
            collection.insert(data, function(err,result){
                callback(err,result);
            })
        })
    }
    /*这里是删除数据*/
    this.remove = function(data,callback){
        MongoClient.connect(DB_CONN_STR, function(err, db) {
            console.log('连接成功')
            var collection = db.collection(dataform);
            collection.remove(data, function(err,result){
                callback(err,result);
            })
        })
    }
    /*这里是修改*/
    this.update=function(data,updata,callback){
        MongoClient.connect(DB_CONN_STR, function(err, db) {
            console.log('连接成功')
            var collection = db.collection(dataform);
            collection.update(data,updata,function(err,data){
                callback(err,data);
            })
        })
    }
    /*这里是查询*/
    this.find=function(data,callback){
        MongoClient.connect(DB_CONN_STR, function(err, db) {
            console.log('连接成功')
            var collection = db.collection(dataform);
            collection.find(data).toArray(function(err,data){
                callback(err,data);
            })
        })
    }
}

module.exports = mongodbModel;

2.0版本使用

var mongodbModel = require('./mongodbModel');
var mongodbObject = new mongodbModel('mydb','user');
mongodbObject.init();

/*这里是插入*/
mongodbObject.insert({"name":"张三"},function(err,data){
    if(err){
        console.log(err);
    }else{
        console.log(data);
    }
})

/*这是删除*/
mongodbObject.remove({"name":"张三"'},function(err,data){
    if(err){
        console.log(err);
    }else{
        console.log('成功删除指定数据');
    }
})

/*这里是修改*/
mongodbObject.update({"name":"张三"},{$set:{"name":"李四"}},function(err,data){
    if(err){
        console.log(err);
    }else{
        console.log(data);
    }
})

/*这里是条件查询*/
mongodbObject.find({"name":"张三"},function(err,data){
    if(err){
        console.log(err);
    }else{
        console.log(data);
    }
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值