NodeJs说文档已被删除,但并未删除

时间:2019-04-01 08:34:42

标签: node.js mongodb

我正在使用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个文档,但未删除任何内容,也未引发任何错误。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

obj将包含一个deletedCount,它可能表示为0。尝试删除不存在的对象并不是失败。

正如@iofjuupasli所指出的那样,您可能需要在过滤器中使用_id作为实际的ObjectID,例如:

var myquery = { _id: ObjectId("5c9e0e721b27d11d38dca8da") };