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

基準を満たすネストされたオブジェクトを見つけるMongoDB

    配列はネストされているため、findで使用できるように基本的な射影を使用することはできません。また、ドキュメントから配列の内容を「フィルタリング」するには、最初に配列の内容を「巻き戻す」必要があります。このために、集約フレームワークを使用します:

       $results = $db->genealogical_data->aggregate(array(
           array( '$match' => array(
               'people.search_columns.givenname' => 'Valentine'
           )),
           array( '$unwind' => '$people' ),
           array( '$match' => array(
               'people.search_columns.givenname' => 'Valentine'
           )),
           array( '$group' => array(
               '_id' => '$id',
               'name' => array( '$first' => '$name' ),
               'people' => array( '$push' => '$people' )
           ))
       ));
    

    最初の $ match> ステージは、基準に一致する可能性のあるドキュメントを減らすことです。 2回目は、 $unwind<の後に行われます。 / code> 、ドキュメント内の実際の「配列」アイテムが結果から「フィルタリング」されます。

    最後の $ group 基準に一致しない項目を除いて、元の配列を通常の状態に戻します。




    1. session_idを使用してMongoからセッションを高速ロード

    2. 日付範囲に対するMongoDb固有の制約

    3. GoLangを使用したmongodbでのトランザクションの例

    4. AdminBro、express、mongoDB、mongooseを使用して5分で管理エリアを作成する