1

簡単にするために、この質問を合理化しました。値が関数に渡され、{field1: value} を持つドキュメントがない場合は、そのドキュメントを作成します。それ以外の場合は、別の関数を呼び出します。ただし、このクエリは常にドキュメントを見つけるか、関係なくwhatever_function()を起動します。(!doc) を true にできないのはなぜですか? このデータベースは動作しており、この問題を除いて適切にクエリ/更新を行います。

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

1 に答える 1

2

検索は、選択したドキュメントにカーソルを返します。次に、ドキュメントの長さが 0 であることを確認する必要があります。

于 2012-08-01T13:17:12.303 に答える