const MongoDb = require('mongodb');
const MongoClient=MongoDb.MongoClient;
const ObjectID = MongoDb.ObjectID;
const Config=require('./config.js')
class Db{
//单例模式
static getInstance(){
if(!Db.Instance){
Db.Instance=new Db()
}
return Db.Instance
}
constructor(){
this.dbClient=null
this.connect()
}
connect(){
const client = new MongoClient(Config.dbUrl,{ useNewUrlParser: true });
return new Promise((resolve,reject) =>{
if(!this.dbClient){
client.connect(err=>{
if(err){
reject(err)
}
else{
const db = client.db(Config.dbName);
this.dbClient = db
resolve(this.dbClient)
}
})}
else{
resolve(this.dbClient)
}
})
}
find(collectionName,json){
return new Promise((resolve,reject)=>{
this.connect().then(function(db){
var result = db.collection(collectionName).find(json)
result.toArray((err,docs)=>{
if(err){
reject(err)
}else{
resolve(docs)
}
})
})
})
}
insert(collectionName,json){
return new Promise((resolve,reject)=>{
this.connect().then(db=>{
db.collection(collectionName).insertOne(json,(err,result)=>{
if(err){
reject(err)
}else{
resolve(result)
}
})
})
})
}
update(collectionName,where,data){
return new Promise((resolve,reject)=>{
this.connect().then(db=>{
db.collection(collectionName).updateOne(where,{
$set:data
},(err,result)=>{
if(err){
reject(err)
}else{
resolve(result)
}
})
})
})
}
remove(collectionName,where){
return new Promise((resolve,reject)=>{
this.connect().then(db=>{
db.collection(collectionName).removeOne(where,(err,result)=>{
if(err){
reject(err)
}else{
resolve(result)
}
})
})
})
}
getObjectId(id){
return new ObjectID(id)
}
}
module.exports=Db.getInstance()
自定义封装mongodb库
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- Create QRScanner.swift file 使用示例 代码及示例下载(有实现生成二维码)NativeQR
- Ceate QRCreator.swift file 完整使用示例 简洁使用 代码及示例下载(有实现二维码扫描)N...
- 我的另一篇文章详细的介绍了如何制作静态库,这里简单介绍下。 步骤1:创建静态库项目,名字为ZBShareViewi...