为简单起见,我简化了这个问题。值传递给函数,如果没有{field1:value}的文档,则创建该文档;否则,调用另一个功能。但是,此查询将始终查找文档,或者无论如何都可能触发whatever_function()。为什么我不能(!doc)成为真实的?除了这个问题,该数据库是可操作的并且适当地查询/更新。
db.doc.find({field1: value}, function(err, doc) {
if (!doc) {
db.doc.save({field1: value});
}
else {
whatever_function();
}
});
答案 0 :(得分:2)
Find将光标返回到所选文档。然后,您应该检查文档长度是否为0.