sql >> データベース >  >> NoSQL >> MongoDB

MongoDB cursor.count()

    MongoDBでは、cursor.count() メソッドは、カーソルによって参照されるドキュメントの数をカウントします。

    実際にはクエリを実行しないことに注意してください。クエリによって返される結果の数をカウントして返すだけです。

    cursor.count() メソッドはcountのラッパーです コマンド。

    petsというコレクションがあるとします。 次のドキュメントを使用:

    { "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
    { "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
    { "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 }
    { "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 }
    { "_id" : 5, "name" : "Bruce", "type" : "Bat", "weight" : 3 }
    { "_id" : 6, "name" : "Fetch", "type" : "Dog", "weight" : 17 }
    { "_id" : 7, "name" : "Jake", "type" : "Dog", "weight" : 30 }

    次のクエリを使用して、コレクション内のドキュメントの数を返すことができます。

    db.pets.find().count()

    結果:

    7

    これは、次のことを行うのと同じです。

    db.pets.count()

    結果:

    7

    MongoDBのドキュメントでは、実際にはcursor.count()を使用しないようにアドバイスしています。 find()の場合 メソッドはクエリ述語なしで呼び出されます。これは、このような場合、結果がコレクションのメタデータに基づいているため、おおよその数になる可能性があるためです。

    クエリの結果をカウントする

    クエリ条件をfind()に渡すことで、クエリの結果をカウントできます。 メソッド。

    例:

    db.pets.find({"type": "Dog"}).count()

    結果:

    4

    この例では、コレクションに4匹の犬がいることがわかりました。

    別のクエリの数を確認しましょう。今回は、体重が一定量を超えるペットの数を調べます。

    db.pets.find({"weight": { $gt: 10 }}).count()

    結果:

    3

    非推奨

    MongoDBのドキュメントには次のように記載されていることに注意してください。

    4.0機能と互換性のあるMongoDBドライバーは、それぞれのカーソルとコレクションのcount()を廃止します。 countDocuments()用の新しいAPIを支持するAPI およびestimatedDocumentCount() 。特定のドライバーの特定のAPI名については、ドライバーのドキュメントを参照してください。

    applySkipLimit パラメータ

    cursor.count() メソッドは1つのオプションパラメータを受け入れます:applySkipLimit パラメータ。

    このパラメーターは、cursor.skip()の効果を考慮するかどうかを指定します およびcursor.limit() カウントのメソッド。

    デフォルトでは、これら2つの方法の影響はすべて無視されます。効果を含めるには、appySkipLimit: trueを使用します 。

    詳細情報

    詳細については、MongoDBのドキュメントを参照してください。


    1. MongoDB検索パフォーマンス:単一の複合インデックスと2つの単一フィールドインデックス

    2. MongoDBで大文字と小文字を区別しないインデックスを作成する方法

    3. Rails、Sidekiq-Redis NOAUTH

    4. MongoDBで1つのデータベースから別のデータベースにコレクションをコピーする方法