mongoDB经由过程_id删除doc

做项目碰到一个需求,须要依据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版本)
愿望能给列位碰到一样题目的道友一些协助,也请列位大神多多指导,轻喷。

    原文作者:懒懒的技术宅
    原文地址: https://segmentfault.com/a/1190000013062545
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞