50

ノードでnpmmongodbドライバーを使用しています。

私は持っています

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

問題は、結果がないということですが、errそれでも結果がnull見つかるかどうかです。クエリで結果が見つからなかったことをどうやって知ることができますか?

私も試しました

info = collection.findOne(....

しかし、それinfoはただのことですundefined(非同期に見えたので、とにかくそれが進むべき道だとは思いませんでした。)

4

6 に答える 6

73

レコードが見つからないことはエラー状態ではないため、探したいのは に値がないことですresult。一致するドキュメントは常に「真実」であるため、簡単なif (result)チェックを使用できます。例えば、

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

    if (result) {
        // we have a result
    } else {
        // we don't
    }
}
于 2012-05-11T12:36:15.757 に答える
5

単に次のように:

collection.findOne({query}, function(err, result) {
    if (!result) {
        // Resolve your query here
    }
}
于 2014-02-17T12:09:57.180 に答える
0

結果が null の場合、mongo はクエリに一致するドキュメントを見つけられませんでした。mongo シェルからクエリを試しましたか?

于 2012-05-11T12:37:10.673 に答える