0

node.js と MongoDB の最新バージョンと、node.js 用のドライバー: MongoJS をインストールしました。

ここで、データベースにレコードが存在するかどうかを調べようとしました (アプリの負荷が高いため、パフォーマンスは良好です)。私はこのクエリを試しましたが、私が得るのはエラーだけです:

var query = db.users.find({ nickname: 'test' }).limit(1);
console.log(query.size());
// or also
// console.log(query.length); 
// => undefinied

エラー:

TypeError: Object [object Object] has no method 'size'

経由console.log(typeof query)で私はちょうど得objectます。

ログqueryを記録すると、次のようになります。

{ _readableState:
    { highWaterMark: 16384,
      buffer: [],
      length: 0,
      pipes: null,
      pipesCount: 0,
      flowing: false,
      ended: false,
      endEmitted: false,
      reading: false,
      calledRead: false,
      sync: true,
      needReadable: false,
      emittedReadable: false,
      readableListening: false,
      objectMode: true,
      ranOut: false,
      awaitDrain: 0,
      readingMore: false,
      decoder: null }
  readable: true,
  domain: null,
  _events: {},
  _maxListeners: 10,
  _get: [Function] }

アイテムが存在するかどうかにかかわらず、結果として常にこれを取得します。

4

1 に答える 1

0

現在の docssizeにメソッドについての言及はありません。代わりに、ここでも機能しますが、これを行うために使用できます。countfindOne

db.users.findOne({ nickname: 'test' }, function(err, doc) {
    if (doc) {
        // At least one matching doc exists
    } else {
        // No match found
    }
});
于 2013-05-05T15:07:20.273 に答える