mongodb的增删改查操作指南

来源:互联网 发布:餐厅收银软件 免费 编辑:程序博客网 时间:2024/06/06 04:01

安装相关模块

如果使用这个的话,你需要先自己安装一下他需要的模块,在根目录输入

npm install mongodb --save
  • 1
  • 1

进行模块安装,安装成功以后就可以进行以下的步骤。

文件的引入

以下是我书写的相关代码,放到你可以引用的相关目录,本人放到了express的根目录

function Mongo(options) {    this.settings = {        url: 'mongodb://localhost:27017/jk',        MongoClient:require('mongodb').MongoClient,        assert:require('assert')    };    for(let i in options){        this.settings[i] = options[i];    }    this._run = function (fun) {        let that = this;        let settings = this.settings;        this.settings.MongoClient.connect(this.settings.url, function (err, db) {            settings.assert.equal(null, err);            console.log("Connected correctly to server");            fun(db, function () {                db.close();            });        });    };    this.insert = function (collectionName, data, func) {        //增加数据        let insertDocuments = function (db, callback) {            let collection = db.collection(collectionName);            collection.insertMany([                data            ], function (err, result) {                if (!err) {                    func(true);                } else {                    func(false);                }                callback(result);            });        };        this._run(insertDocuments);    };    this.update = function (collectionName, updateData, data, func) {        //更新数据        let updateDocument = function (db, callback) {            let collection = db.collection(collectionName);            collection.updateOne(updateData                , {$set: data}, function (err, result) {                    if (!err) {                        func(true);                    } else {                        func(false);                    }                    callback(result);                });        };        this._run(updateDocument);    };    this.delete = function (collectionName, data, func) {        //删除数据        let deleteDocument = function (db, callback) {            let collection = db.collection(collectionName);            collection.deleteOne(data, function (err, result) {                if (!err) {                    func(true);                } else {                    func(false);                }                callback(result);            });        };        this._run(deleteDocument);    };    this.find = function (collectionName, data, func) {        //查找数据        let findDocuments = function (db, callback) {            // Get the documents collection            let collection = db.collection(collectionName);            // Find some documents            collection.find(data).toArray(function (err, docs) {                if (!err) {                    func(true,docs);                }                else {                    func(false, err);                }                callback(docs);            });        };        this._run(findDocuments);    };}module.exports = Mongo;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102

我存入到了一个名字叫server.js的文件名内

使用

我们在需要使用页面先将模块引入,比如我在路由文件index.js里面引入:

const Server = require("../server.js");
  • 1
  • 1

然后需要实例化对象,如下:

let server = new Server();
  • 1
  • 1

如果需要配置相关信息,可以在实例化的时候传入一个对象配置,可以配置数据库的地址:

let server = new Server({url:"mongodb://localhost:27017/mydb"});
  • 1
  • 1

里面封装了四个方法,添删改查,分别是 
添加方法

server.insert(数据表名,需要插入的数据(键值对的对象),回调函数);
  • 1
  • 1

更新方法

server.update(数据表名,查询的数据(对象),更新的数据(对象),回调函数);
  • 1
  • 1

删除方法

server.delete(数据表名,查询的数据(对象),回调函数);
  • 1
  • 1

查找方法

server.find(数据表名,查询的数据(对象),回调函数);
  • 1
  • 1

回调函数都会返回两个值,第一个布尔类型,是否处理成功,第二个值,查找返回查找到的个数,别的都返回处理成功的个数(现在一次只处理一条)

使用案例

比如我需要在一个路由里面查找数据,我就需要这样:

server.find("users",{username:"username"},function (bool,data) {        if(bool){            console.log("查询到数据为"+data.length+"条");        }        else{            console.log(data);        }    });});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

上面的代码是查询了users表里面username为username的字段的数据,如果成功,后面data就会返回一个数组,如果出现错误,就直接返回data错误。

原创粉丝点击