JS封装 MongoDB

const MongoClient = require('mongodb').MongoClient;
const ObjectId = require('mongodb').ObjectId;
const url = "mongodb://localhost:27017";

const dbName = 'Javascript语言精粹';
let obj = {};

// 连接封装
function _connect(callback){
    MongoClient.connect(url, function(err, client){
        if(err) throw err;
        callback(client);
        client.close();
    })
}

// 创建数据库集合
obj.create = function(colName, fn){
    _connect(function(client){
        client.db(dbName).createCollection(colName, function(err, res){
            fn(err, res);
        })
    })
}

// 插入
obj.insert = function(colName, dataArr, fn){
    _connect(function(client){
        const col = client.db(dbName).collection(colName);
        col.insert(dataArr, function(err, res){
            fn(err, res);
        })
    });
}

// 添加
obj.save = function(colName, data, fn){
    _connect(function(client){
        const col = client.db(dbName).collection(colName);
        col.save(data, function(err, res){
            fn(err, res);
        });
    })
}

// 删除
obj.remove = function(colName, filter, fn){
    _connect(function(client){
        const col = client.db(dbName).collection(colName);
        col.remove(filter, function(err, res){
            fn(err, res)
        })
    })
}

// 更新
obj.update = function(colName, filterNum, update, fn){
    _connect(function(client){
        const col = client.db(dbName).collection(colName);
        col.update({"_id" : ObjectId(filterNum)}, {$set:update}, function(err, res){
            fn(err, res);
        })
    })
}

// 查找
obj.find = function(colName, filter, fn){
    _connect(function(client){
        const col = client.db(dbName).collection(colName);
        col.find(filter).toArray(function(err, res){
            fn(err, res);
        })
    })
}

// 创建索引
obj.index = function(colName){
    _connect(function(client){
        const col = client.db(dbName).collection(colName);
        col.createIndex({"anystr":"2dsphere"}, function(err, res){
            fn(err, res);
        })
    })
}


// obj.find('artical', {}, function(err, res){
//     if(err) throw err;
//     console.log(res);
// })

module.exports = obj;
原文地址:https://www.cnblogs.com/SharkJiao/p/13921384.html