MongoDB查询返回错误的结果

为简单起见,我简化了这个问题。 将值传递给该函数,如果没有包含{field1:value}的文档,则创build该文档; 否则,调用另一个函数。 但是,这个查询总是会find一个文档,或者不pipe怎样都会引发whatever_function()。 为什么我不能得到(!doc)是真的? 除了这个问题之外,这个数据库可以正常运行和查询/更新。

db.doc.find({field1: value}, function(err, doc) { if (!doc) { db.doc.save({field1: value}); } else { whatever_function(); } }); 

查找将光标返回到所选文档。 然后,你应该检查文档长度是0。