作项目遇到一个需求,须要根据mongodb数据记录里面的_id字段删除相应的docs,实际使用时发现直接以下使用mongodb
db.collection('infochanges').remove({"_id":idvalue}).then(function(){})
会报错,这里须要将idvalue转换成mongodb默认的_id字段的objectid类型
因而,引入模块(mongoDB3.6)ui
> var ObjectId = require('mongodb').ObjectID;//Work
其余的mongoDB版本可尝试code
> var ObjectId = require('mongodb').ObjectId;//Work
引用完成以后rem
> db.collection('infochanges').remove({"_id":{"_id":ObjectId(idvalue)}).then(function(){})
此时,你会发现并不能经过上述操做成功删除数据,而是报错:io
TypeError:Cannot convert undefined or null to object
重点:请使用findAndRemovefunction
db.collection('infochanges').findAndRemove({"_id":ObjectId(index)}).then(function(){})
经过_id删除docs要用findAndRemove,remove不起做用(3.6版本)
但愿能给各位遇到一样问题的道友一些帮助,也请各位大神多多指点,轻喷。dva