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

MongoDB countDocuments()

    MongoDBでは、db.collection.countDocuments() メソッドは、コレクションまたはビューのクエリに一致するドキュメントの数を返します。

    collection partは、カウント操作を実行するコレクションまたはビューの名前です。

    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.countDocuments({})

    結果:

    7

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

    クエリ条件を渡すことで、クエリの結果をカウントできます。

    例:

    db.pets.countDocuments({
        "type": "Dog"
    })

    結果:

    4

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

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

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

    結果:

    3

    カウントを制限する

    limitを使用します カウントするドキュメントの最大数を指定するパラメータ。

    例:

    db.pets.countDocuments( {}, { limit: 5 } )

    結果:

    5

    以前、このコレクションには実際には7つのドキュメントがあることを確認しましたが、この例では、最大5つに制限しました。

    制限が実際の数よりも多い場合、結果はlimitの影響を受けません。 引数。

    例:

    db.pets.countDocuments( {}, { limit: 10 } )

    結果:

    7

    ドキュメントのスキップ

    skipを使用してカウントできます カウントする前にドキュメントの数をスキップするパラメータ。

    例:

    db.pets.countDocuments( {}, { skip: 5 } )

    結果:

    2

    count()の非推奨 countDocuments()を支持して

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

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

    詳細情報

    countDocuments() メソッドは、count()のようにカウントを返すためにメタデータに依存しません メソッドは行います。代わりに、ドキュメントの集計を実行します。これにより、正確なカウントが得られます(これは、count()では常に言えるとは限りません。 方法)。

    MongoDBのドキュメントによると、countDocuments() クリーンでないシャットダウンの後、またはシャーディングされたクラスター内に孤立したドキュメントが存在する場合でも、正確です。

    db.collection.count() メソッドはhintも受け入れます パラメータとmaxTimeMS パラメータ。

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


    1. Redisハッシュ用のMGETアナログはありますか?

    2. Redis-値がアクティブに書き込まれなくなったときにイベントをトリガーする方法はありますか?

    3. MongoDB$gtアグリゲーションパイプラインオペレーター

    4. ソートされたセットRedisをどのように組み合わせるのですか?