|
查询一个集合的条数删除一个集合 【算啦 我全复制粘贴过来吧 反正是我自己封装的】 【当时的 数据库版本号3.6.3 ,当时的 模块版本号 3.1.8】- /**
- * http://mongodb.github.io/node-mongodb-native
- * http://mongodb.github.io/node-mongodb-native/3.0/api/
- */
- //DB库
- var MongoDB = require('mongodb');
- var MongoClient =MongoDB.MongoClient;
- const ObjectID = MongoDB.ObjectID;
- var Config=require('./config.js');
- class Db{
- static getInstance(){ /*1、单例 多次实例化实例不共享的问题*/
- if(!Db.instance){
- Db.instance=new Db();
- }
- return Db.instance;
- }
- constructor(){
- this.dbClient=''; /*属性 放db对象*/
- this.connect(); /*实例化的时候就连接数据库*/
- }
- connect(){ /*连接数据库*/
- let _that=this;
- return new Promise((resolve,reject)=>{
- if(!_that.dbClient){ /*1、解决数据库多次连接的问题*/
- MongoClient.connect(Config.dbUrl, {useNewUrlParser:true},(err,client)=>{
- if(err){
- reject(err)
- }else{
- _that.dbClient=client.db(Config.dbName);
- resolve(_that.dbClient)
- }
- })
- }else{
- resolve(_that.dbClient);
- }
- })
- }
- //查
- 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);
- })
- })
- })
- }
- //改
- 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);
- }
- })
- })
- })
- }
- //数组操作 添加
- update2(collectionName,json1,json2){
- return new Promise((resolve,reject)=>{
- this.connect().then((db)=>{
- //db.user.update({},{$set:{}})
- db.collection(collectionName).updateOne(json1,{
- $push:json2
- },(err,result)=>{
- if(err){
- reject(err);
- }else{
- resolve(result);
- }
- })
- })
- })
- }
- // let data = await DB.update2("menuM",{"code" :"0" },{"data":{"fname":"xiong","lname":"lan"}})
- // let data = await DB.update3("menuM",{"code" :"0" },{"data":{"fname":"xiong","lname":"lan"}})
- //数组操作 删除
- update3(collectionName,json1,json2){
- return new Promise((resolve,reject)=>{
- this.connect().then((db)=>{
- db.collection(collectionName).updateOne(json1,{
- $pull: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);
- }
- })
- })
- })
- }
- // 移除一个 注意了版本号 我这里使用的是 deleteOne 在3.2之前不能用 这3.2是数据库的版本
- removeone(collectionName,json){
- return new Promise((resolve,reject)=>{
- this.connect().then((db)=>{
- db.collection(collectionName).deleteOne(json,function(err,result){
- if(err){
- reject(err);
- }else{
- resolve(result);
- }
- })
- })
- })
- }
- // 移除一个集合所有数据
- removeall(collectionName,json){
- return new Promise((resolve,reject)=>{
- this.connect().then((db)=>{
- db.collection(collectionName).deleteMany(json,function(err,result){
- if(err){
- reject(err);
- }else{
- resolve(result);
- }
- })
- })
- })
- }
- // 批量插入数据 需要数据库版本在 3.2之后 利用 insertMany() 被插入的是一个数组
- insertall(collectionName,arr){
- return new Promise((resolve,reject)=>{
- this.connect().then((db)=>{
- db.collection(collectionName).insertMany(arr,function(err,result){
- if(err){
- reject(err);
- }else{
- resolve(result);
- }
- })
- })
- })
- }
-
- getObjectId(id){ /*mongodb里面查询 _id 把字符串转换成对象*/
- return new ObjectID(id);
- }
- }
- module.exports=Db.getInstance();
复制代码
|
|