node.js调用mangodb的操作还是有点繁琐的,为了简化底层操作,关注具体业务,我特意把MongoDB封装了一下,话不多说直接看代码
封装代码
let MongoClient
= require('mongodb').MongoClient
;
const url
= "mongodb://127.0.0.1:27017/"
class Dbc {
constructor(dataName
,colName
)
{
this.dataName
= dataName
this.colName
= colName
}
find(obj
)
{
let that
=this
return new Promise((resolve
,reject
) =>
{
MongoClient
.connect(url
,{useNewUrlParser
:true},function (err
,dbs
) {
if (err
)
{
reject(err
)
}
else
{
let collection
=dbs
.db(that
.dataName
).collection(that
.colName
)
collection
.find(obj
).toArray(function (err
,data
) {
if (err
)
reject(err
)
else
resolve(data
)
dbs
.close()
})
}
})
})
}
insertOne(obj
){
let that
= this;
MongoClient
.connect(url
,function(err
,dbs
){
if (err
) throw err
;
let collection
=dbs
.db(that
.dataName
).collection(that
.colName
)
collection
.insertOne(obj
,function(err
, res
) {
if (err
) throw err
;
console
.log("文档插入成功:",res
.result
)
dbs
.close();
})
})
}
insertMany(obj
){
let that
= this;
MongoClient
.connect(url
,function(err
,dbs
){
if (err
) throw err
;
let collection
=dbs
.db(that
.dataName
).collection(that
.colName
)
collection
.insertMany(obj
,function(err
, res
) {
if (err
) throw err
;
console
.log("插入的文档数量为: " + res
.insertedCount
)
dbs
.close();
})
})
}
insertMany(obj
){
let that
= this;
MongoClient
.connect(url
,function(err
,dbs
){
if (err
) throw err
;
let collection
=dbs
.db(that
.dataName
).collection(that
.colName
)
collection
.insertMany(obj
,function(err
, res
) {
if (err
) throw err
;
console
.log("插入的文档数量为: " + res
.insertedCount
)
dbs
.close();
})
})
}
deleteOne(setObj
)
{
let that
= this;
MongoClient
.connect(url
,function(err
,dbs
){
if (err
) throw err
;
let collection
=dbs
.db(that
.dataName
).collection(that
.colName
)
collection
.deleteOne(setObj
,function(err
) {
if (err
) throw err
;
console
.log("文档删除成功" )
dbs
.close();
})
})
}
deleteMany(setObj
)
{
let that
= this;
MongoClient
.connect(url
,function(err
,dbs
){
if (err
) throw err
;
let collection
=dbs
.db(that
.dataName
).collection(that
.colName
)
collection
.deleteMany(setObj
,function(err
,obj
) {
if (err
) throw err
;
console
.log(obj
.result
.n
+ " 条文档被删除")
dbs
.close();
})
})
}
updateOne(whereObj
,setObj
)
{
let that
= this;
MongoClient
.connect(url
,function(err
,dbs
){
if (err
) throw err
;
let collection
=dbs
.db(that
.dataName
).collection(that
.colName
)
collection
.updateOne(whereObj
,{$
set:setObj
},function(err
) {
if (err
) throw err
;
console
.log("文档更新成功")
dbs
.close();
})
})
}
updateMany(whereObj
,setObj
)
{
let that
= this;
MongoClient
.connect(url
,function(err
,dbs
){
if (err
) throw err
;
let collection
=dbs
.db(that
.dataName
).collection(that
.colName
)
collection
.updateMany(whereObj
,{$
set:setObj
},function(err
,res
) {
if (err
) throw err
;
console
.log(res
.result
.nModified
+ " 条文档被更新")
dbs
.close();
})
})
}
}
module
.exports
={
Dbc
}
调用代码
const {Dbc
} = require("./mongodbc")
const dbc
= new Dbc("mydb","user")
var myobj
= [
{ name
: '菜鸟工具', url
: 'https://c.runoob.com', type
: 'cn'},
{ name
: 'Google', url
: 'https://www.google.com', type
: 'en'},
{ name
: 'Facebook', url
: 'https://www.google.com', type
: 'en'}
];
dbc
.insertMany(myobj
)
dbc
.deleteMany({type
:"en"})
dbc
.updateMany({type
:"en"},{url
:"这是被修改后的路径"})
dbc
.find({type
:"en"}).then(data
=> {
console
.log(data
)
})
转载请注明原文地址:https://blackberry.8miu.com/read-2177.html