做项目碰到一个需求,须要依据mongodb数据纪录内里的_id字段删除响应的docs,实际运用时发明直接以下运用
db.collection('infochanges').remove({"_id":idvalue}).then(function(){})
会报错,这里须要将idvalue转换成mongodb默许的_id字段的objectid范例
因而,引入模块(mongoDB3.6)
> var ObjectId = require('mongodb').ObjectID;//Work
其他的mongoDB版本可尝试
> var ObjectId = require('mongodb').ObjectId;//Work
援用完成以后
> db.collection('infochanges').remove({"_id":{"_id":ObjectId(idvalue)}).then(function(){})
此时,你会发明并不能经由过程上述操纵胜利删除数据,而是报错:
TypeError:Cannot convert undefined or null to object
重点:请运用findAndRemove
db.collection('infochanges').findAndRemove({"_id":ObjectId(index)}).then(function(){})
经由过程_id删除docs要用findAndRemove,remove不起作用(3.6版本)
愿望能给列位碰到一样题目的道友一些协助,也请列位大神多多指导,轻喷。