3

アプリケーションの作成にNodeJとネイティブMongoDBドライバーを使用しています。特定の条件のレコードが1つ存在するかどうかを確認したいのですが、どちらの方法が優れているかを知りたいですか?

collection.find({...}).count(function(err, count){
    if(count > 0) {
       //blah blah
    }
})

また

collection.findOne({...}, function(err, object){
    //blah blah
})
4

1 に答える 1

1

この質問を参照してください。私はあなたの場合に行く方法findであると信じています。limit(1)(クエリを使用して実際のドキュメントデータを取得する場合は、を使用しますfindOne)。

に関してはmongodb-native、コードは次のようになります

function recordExists(selector, callback) {
  collection.find(selector, {limit: 1}, function(err, cursor) {
    if (err) return callback(err);
    cursor.count(function(err, cnt) {
      return callback(err, !!cnt);
    });
  });
}


私はこれについて少し混乱しています:collection.find({...}).count。ネイティブドライバーはそれを行うことができますか?それcursor.countですか?とにかく、limitここにあなたの友達がいます。

于 2012-07-09T18:28:05.983 に答える