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

MongoDBはどのようにドキュメントを1つのコレクションに並べ替えますか?

    これは自然秩序と呼ばれます :

    natural order

    データベースがディスク上のドキュメントを参照する順序。これはデフォルトのソート順です。 $naturalを参照してください およびReturn in Natural Order

    これは、一般的に、挿入したのと同じ順序でそれらを取得することを確認しますが、気付いたように、それは保証されません。

    自然な順序で戻る

    $natural パラメータは、データベース内の自然な順序に従ってアイテムを返します。この順序付けは内部実装機能であり、その中の特定の構造に依存しないでください。

    インデックスの使用

    $naturalによる並べ替えを含むクエリ 注文はしない 次の例外を除いて、インデックスを使用してクエリ述語を実行します。クエリ述語が_idの等価条件である場合 フィールド{ _id: <value> } 、次に$naturalで並べ替えたクエリ 注文には_idを使用できます インデックス。

    MMAPv1

    通常、自然な順序は、MMAPv1ストレージエンジンの次の例外を除いて、挿入順序を反映します。 MMAPv1ストレージエンジンの場合、ドキュメントの増加または削除操作のためにドキュメントが再配置された場合、自然な順序は挿入順序を反映しません。スペースが解放され、新しく挿入されたドキュメントによって占有されます。

    明らかに、言及されたドキュメントのように、あなたはすべきではありません このデフォルトの順序に依存します(この順序は内部実装機能であり、その中の特定の構造に依存しないでください。

    並べ替える必要がある場合は、並べ替えソリューションを使用してください。

    基本的に、次の2つの呼び出しは、同じ順序でドキュメントを返す必要があります(デフォルトの順序は$naturalであるため) ):

    db.mycollection.find().sort({ "$natural": 1 })
    db.mycollection.find()
    

    別のフィールド(例:name)で並べ替える場合 )あなたはそれを行うことができます:

    db.mycollection.find().sort({ "name": 1 })
    


    1. Python-Redisサーバーが利用可能かどうかを確認する方法

    2. .quit()を使用してノードredisクライアントインスタンスを終了する必要がありますか?

    3. マングース-メール構文を検証する

    4. MongoDBコレクション内に特定の埋め込みドキュメントを取得するにはどうすればよいですか?