老莫的笔记本  
  
查看: 1308|回复: 0

一些常用的mongodb命令

[复制链接]

664

主题

880

帖子

5155

积分

超级版主

Rank: 8Rank: 8

积分
5155
发表于 2018-10-16 15:32:09 | 显示全部楼层 |阅读模式
查询一个集合的条数
  1. db.col.find().count();
复制代码
删除一个集合 【算啦 我全复制粘贴过来吧   反正是我自己封装的】 【当时的 数据库版本号3.6.3  ,当时的 模块版本号 3.1.8】
  1. /**
  2. * http://mongodb.github.io/node-mongodb-native
  3. * http://mongodb.github.io/node-mongodb-native/3.0/api/
  4. */
  5. //DB库
  6. var MongoDB = require('mongodb');
  7. var MongoClient =MongoDB.MongoClient;
  8. const ObjectID = MongoDB.ObjectID;
  9. var Config=require('./config.js');
  10. class Db{
  11.     static getInstance(){   /*1、单例  多次实例化实例不共享的问题*/
  12.         if(!Db.instance){
  13.             Db.instance=new Db();
  14.         }
  15.         return  Db.instance;
  16.     }
  17.     constructor(){
  18.         this.dbClient=''; /*属性 放db对象*/
  19.         this.connect();   /*实例化的时候就连接数据库*/
  20.     }
  21.     connect(){  /*连接数据库*/
  22.       let _that=this;
  23.       return new Promise((resolve,reject)=>{
  24.           if(!_that.dbClient){         /*1、解决数据库多次连接的问题*/
  25.               MongoClient.connect(Config.dbUrl, {useNewUrlParser:true},(err,client)=>{
  26.                   if(err){
  27.                       reject(err)
  28.                   }else{
  29.                       _that.dbClient=client.db(Config.dbName);
  30.                       resolve(_that.dbClient)
  31.                   }
  32.               })
  33.           }else{
  34.               resolve(_that.dbClient);
  35.           }
  36.       })
  37.     }
  38.     //查
  39.     find(collectionName,json){
  40.        return new Promise((resolve,reject)=>{
  41.             this.connect().then((db)=>{
  42.                 var result=db.collection(collectionName).find(json);
  43.                 result.toArray(function(err,docs){
  44.                     if(err){
  45.                         reject(err);
  46.                         return;
  47.                     }
  48.                     resolve(docs);
  49.                 })
  50.             })
  51.         })
  52.     }
  53.     //改
  54.     update(collectionName,json1,json2){
  55.         return new Promise((resolve,reject)=>{
  56.                 this.connect().then((db)=>{
  57.                     //db.user.update({},{$set:{}})
  58.                     db.collection(collectionName).updateOne(json1,{
  59.                         $set:json2
  60.                     },(err,result)=>{
  61.                         if(err){
  62.                             reject(err);
  63.                         }else{
  64.                             resolve(result);
  65.                         }
  66.                     })
  67.                 })
  68.         })
  69.     }
  70.     //数组操作 添加
  71.     update2(collectionName,json1,json2){
  72.         return new Promise((resolve,reject)=>{
  73.                 this.connect().then((db)=>{
  74.                     //db.user.update({},{$set:{}})
  75.                     db.collection(collectionName).updateOne(json1,{
  76.                         $push:json2
  77.                     },(err,result)=>{
  78.                         if(err){
  79.                             reject(err);
  80.                         }else{
  81.                             resolve(result);
  82.                         }
  83.                     })
  84.                 })
  85.         })
  86.     }
  87.     // let data = await DB.update2("menuM",{"code" :"0" },{"data":{"fname":"xiong","lname":"lan"}})
  88.     // let data = await DB.update3("menuM",{"code" :"0" },{"data":{"fname":"xiong","lname":"lan"}})
  89.     //数组操作 删除
  90.     update3(collectionName,json1,json2){
  91.         return new Promise((resolve,reject)=>{
  92.                 this.connect().then((db)=>{
  93.                     db.collection(collectionName).updateOne(json1,{
  94.                         $pull:json2
  95.                     },(err,result)=>{
  96.                         if(err){
  97.                             reject(err);
  98.                         }else{
  99.                             resolve(result);
  100.                         }
  101.                     })
  102.                 })
  103.         })
  104.     }
  105.     //添加
  106.     insert(collectionName,json){
  107.         return new  Promise((resolve,reject)=>{
  108.             this.connect().then((db)=>{
  109.                 db.collection(collectionName).insertOne(json,function(err,result){
  110.                     if(err){
  111.                         reject(err);
  112.                     }else{
  113.                         resolve(result);
  114.                     }
  115.                 })
  116.             })
  117.         })
  118.     }
  119.     // 移除一个   注意了版本号 我这里使用的是 deleteOne 在3.2之前不能用 这3.2是数据库的版本
  120.     removeone(collectionName,json){
  121.         return new  Promise((resolve,reject)=>{
  122.             this.connect().then((db)=>{
  123.                 db.collection(collectionName).deleteOne(json,function(err,result){
  124.                     if(err){
  125.                         reject(err);
  126.                     }else{
  127.                         resolve(result);
  128.                     }
  129.                 })
  130.             })
  131.         })
  132.     }
  133.     // 移除一个集合所有数据
  134.     removeall(collectionName,json){
  135.         return new  Promise((resolve,reject)=>{
  136.             this.connect().then((db)=>{
  137.                 db.collection(collectionName).deleteMany(json,function(err,result){
  138.                     if(err){
  139.                         reject(err);
  140.                     }else{
  141.                         resolve(result);
  142.                     }
  143.                 })
  144.             })
  145.         })
  146.     }
  147.     // 批量插入数据 需要数据库版本在 3.2之后 利用 insertMany() 被插入的是一个数组
  148.     insertall(collectionName,arr){
  149.         return new  Promise((resolve,reject)=>{
  150.             this.connect().then((db)=>{
  151.                 db.collection(collectionName).insertMany(arr,function(err,result){
  152.                     if(err){
  153.                         reject(err);
  154.                     }else{
  155.                         resolve(result);
  156.                     }
  157.                 })
  158.             })
  159.         })
  160.     }
  161.    
  162.     getObjectId(id){    /*mongodb里面查询 _id 把字符串转换成对象*/
  163.         return new ObjectID(id);
  164.     }
  165. }
  166. module.exports=Db.getInstance();
复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表