一尘不染

MongoDB Node findone如何处理无结果?

node.js

我在mongodb节点上使用npm 驱动程序。

我有

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

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

我也尝试过

info = collection.findOne(....

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


阅读 312

收藏
2020-07-07

共1个答案

一尘不染

未找到任何记录都不是错误情况,因此您要查找的是中缺少值result。由于任何匹配的文档将始终是“真实的”,因此您只需使用简单的if (result)检查即可。例如,

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

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