我正在使用nodejs和mongoDB。
我正试图通过给其_id删除集合中的文档。
所以我正在用这个:
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
if (err) throw err;
var dbo = db.db("myDatabase");
console.log(req.params.id);
var myquery = { _id: "5c9e0e721b27d11d38dca8da" };
dbo.collection("myCollection").deleteOne(myquery, function(err, obj) {
if (err) throw err;
console.log("1 document deleted");
db.close();
});
});
控制台显示已删除1个文档,但未删除任何内容,也未引发任何错误。
我在这里做错了什么?
答案 0 :(得分:1)
obj将包含一个deletedCount
,它可能表示为0。尝试删除不存在的对象并不是失败。
正如@iofjuupasli所指出的那样,您可能需要在过滤器中使用_id作为实际的ObjectID,例如:
var myquery = { _id: ObjectId("5c9e0e721b27d11d38dca8da") };