一些常用的mongodb命令
查询一个集合的条数db.col.find().count();删除一个集合 【算啦 我全复制粘贴过来吧 反正是我自己封装的】 【当时的 数据库版本号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();
}
returnDb.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 newPromise((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 newPromise((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 newPromise((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 newPromise((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();
页:
[1]