node.js - MongoDB Node findone如何处理没有结果?

我正在使用带有 Node 的 npm mongodb 驱动程序。

我有

collection.findOne({query}, function(err, result) {
    //do something
}

问题是说我没有任何结果,无论我是否找到结果,err 仍然是 null。我怎么知道查询没有找到结果?

我也试过

info = collection.findOne(....

但是 info 只是 undefined (它看起来是异步的,所以我不认为这是要走的路..)

最佳答案

未找到任何记录不是错误情况,因此您要查找的是 result 中缺少值。由于任何匹配的文档总是“真实的”,你可以简单地使用一个简单的 if (result) 检查。例如,

collection.findOne({query}, function(err, result) {
    if (err) { /* handle err */ }

    if (result) {
        // we have a result
    } else {
        // we don't
    }
}

https://stackoverflow.com/questions/10551313/

相关文章:

mongodb - Mongoose中的级联样式删除

regex - Node.js 和 Mongoose 正则表达式查询多个字段

mongodb - 如何在mongodb中删除N个文档

mongodb - "db.createUser is not a function"和 "pass

mongodb - 如何列出 mongo shell 中的所有用户?

node.js - 如何使用 Mongoose findOne

mongodb - Cassandra、Membase、Hadoop、MongoDB、RDBMS等如

java - java中使用mongodb的createIndex()和ensureIndex()的

ruby-on-rails - 批量查找 mongoDB 记录(使用 mongoid ruby​​

javascript - .save() 和使用 update() 之间的 Mongoose 区别