美文网首页
mongodb 的 crud封装

mongodb 的 crud封装

作者: 简爱的三年 | 来源:发表于2018-12-19 21:00 被阅读0次

    mongodb官方提供的 crud API

    var MongoDB = require('mongodb')
    var MongoClient = MongoDB.MongoClient
    const objectID = MongoDB.objectID
    
    const config = {
      dbUrl = 'mongodb://localhost:27017',
      dbName = 'koa'
    }
    

    es6 封装mongo

      class Db{
    
        static getInstance(){     // 此静态方法用于判断是否连接 mongodb 数据库,避免重新连接数据库
    
            if(!Db.instance){
                Db.instance=new Db();
            }
            return  Db.instance;
        }
    
        constructor(){
            this.dbClient=''; 
            this.connect();   
        }
     
    //  连接数据库
        connect(){  
          let _that = this;
          return new Promise((resolve,reject)=>{
              if(!_that.dbClient){         
                  MongoClient.connect(Config.dbUrl,(err,client)=>{
    
                      if(err){
                          reject(err)
    
                      }else{
    
                          _that.dbClient=client.db(Config.dbName);
                          resolve(_that.dbClient)
                      }
                  })
    
              }else{
                  resolve(_that.dbClient);
    
              }
    
          })
    
        }
    
    //  查询数据库     
    
    /**
      @param  collectionName   表名
      @param  json        查找的对象
    */
        find(collectionName,json){
    
           return new Promise((resolve,reject)=>{
    
                this.connect().then((db)=>{
    
                    var result=db.collection(collectionName).find(json);
    
                    result.toArray(function(err,docs){
    
                        if(err){
                            reject(err);
                            return;
                        }
                        resolve(docs);
                    })
    
                })
            })
        }
    
    //  更新数据     
    
    /**
      @param  collectionName   表名
      @param  json1        需要更新的对象
      @param  json2        更新的对象
    */
        update(collectionName,json1,json2){
            return new Promise((resolve,reject)=>{
    
    
                    this.connect().then((db)=>{
    
                        //db.user.update({},{$set:{}})
                        db.collection(collectionName).updateOne(json1,{
                            $set:json2
                        },(err,result)=>{
                            if(err){
                                reject(err);
                            }else{
                                resolve(result);
                            }
                        })
    
                    })
    
            })
    
        }
        insert(collectionName,json){
            return new  Promise((resolve,reject)=>{
                this.connect().then((db)=>{
    
                    db.collection(collectionName).insertOne(json,function(err,result){
                        if(err){
                            reject(err);
                        }else{
    
                            resolve(result);
                        }
                    })
    
    
                })
            })
        }
    
        remove(collectionName,json){
    
            return new  Promise((resolve,reject)=>{
                this.connect().then((db)=>{
    
                    db.collection(collectionName).removeOne(json,function(err,result){
                        if(err){
                            reject(err);
                        }else{
    
                            resolve(result);
                        }
                    })
    
    
                })
            })
        }
        getObjectId(id){    
    
            return new ObjectID(id);
        }
    }
    

    相关文章

      网友评论

          本文标题:mongodb 的 crud封装

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