ランダムにコレクションからドキュメントを選択する必要があります(または、ランダムに配置された「ウィンドウ」から少数の連続したドキュメント)。 私は2つのソリューションを見つけました:1と2私は大きなコレクションのサイズを予想し、ドキュメントのサイズを最小限に抑えたいので、最初は受け入れられません。 2番目は効果がないようです(私はskip
操作の複雑さについてはわかりません)。そしてhere指定されたインデックスを持つドキュメントをクエリすることについての記述がありますが、私はそれを行う方法がわかりません(私はC++ドライバを使用しています)。MongoDB:単一のランダム文書を照会する最も効率的な方法は何ですか?
他の解決策がありますか?どちらが最も効率的ですか?
MongoDBチケットトラッカーに[コレクションからランダムなアイテムを取得する機能リクエスト](https://jira.mongodb.org/browse/SERVER-533)があります。ネイティブに実装されている場合は、最も効率的なオプションになる可能性があります。 (機能が必要な場合は、投票してください) –
この質問は、ここでスタックオーバーフローの多くのフォームで要求されています。最も一般的な質問は[MongoDBのランダムレコード](http://stackoverflow.com/questions/2824157/random-record-from-mongodb)です。これは良い回答です。しかし、私は、この問題についての最善の考え方は、ランダムな文書を1つ取得することを考えるのではなく、むしろ結果セットをランダム化することだと思います。それについては、[Mongoでランダムに結果セットを注文する](http://stackoverflow.com/questions/8500266/ordering-a-result-set-randomly-in-mongo)を参照してください。 –