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

結果セットをmongoでランダムに注文する

    同意する必要があります。最も簡単な方法は、ドキュメントにランダムな値をインストールすることです。値の範囲が非常に広い必要はありません。選択する数値は、クエリで予想される結果のサイズによって異なります(ほとんどの場合、1,000〜1,000,000の整数で十分です)。

    クエリを実行するときは、ランダムフィールドについて心配する必要はありません。代わりに、インデックスを作成し、それを使用して並べ替えます。乱数とドキュメントの間に対応関係がないため、かなりランダムな結果が得られるはずです。衝突により、ドキュメントが自然な順序で返される可能性があることに注意してください。

    これは 確かにハックです。非常に簡単な脱出ルートがあります。MongoDBのスキーマフリーの性質を考えると、サーバーでランダムソートがサポートされたら、ランダムフィールドの組み込みを停止できます。サイズが問題になる場合は、バッチジョブを実行して、既存のドキュメントからフィールドを削除できます。注意深く設計すれば、クライアントコードに大きな変更はないはずです。

    別のオプションは、特定のクエリに対してランダム化されて返される結果の数について、長く真剣に考えることです。クライアントコードを単純にシャッフルするのにそれほど費用がかからない場合があります(つまり、最新の10,000件の投稿のみを考慮する場合)。



    1. MongoDBで複数のコレクションを検索する

    2. Python辞書:u'文字を削除する

    3. Javaドライバーを使用してmongodbのドキュメントのフィールドを更新するにはどうすればよいですか?

    4. mongoDBアグリゲーション内のフィールドのタイプを変更し、$ lookupはフィールドのインデックスを利用しますか?