のように見えるを数える 安くなければならないものの1つですが、そうではないことがよくあります。 mongoは、bツリーインデックスの特定の基準に一致するドキュメントの数のカウントを維持しないため、ドキュメントをカウントするインデックスをスキャンする必要があります。つまり、ドキュメントを100倍カウントすると、100倍の時間がかかります。これは、おおよそここに表示されるものです-0.018 * 100 = 1.8s
。
これをスピードアップするには、いくつかのオプションがあります:
- アクティブカウントはおおよそ
estimatedDocumentCount() - db.users.countDocuments({status: 'inactive'})
。これはあなたのユースケースにとって十分正確ですか? - または、
counts
を維持することもできます 所有しているアクティブ/非アクティブドキュメントの数と同期している別のコレクション内のドキュメント。