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

サブドキュメントをクエリし、一致するサブドキュメントのみを返す

    検索クエリの$inは、サブドキュメントではなくドキュメントを返すように設計されています。あなたの場合、mongoDBは集約フレームワークを提供しています。これは、サブドキュメントをフィルタリングするのに役立ちます。

    mongoDB <=3.0.xの場合

    db.collection.aggregate(
      { $project: { Brand: 1}},
      { $unwind: '$Brand'},
      { $match: { "Brand.name" : { $in : ["Reebok", "Adidas"]}}},
      { $group: { _id: '$_id', Brand: {$push : '$Brand' }}}
    )
    

    MongoDB3.2の方法

    db.collection.aggregate([
       {
          $project: {
             Brand: {
                $filter: {
                   input: "$Brand",
                   as: "Brand",
                   cond: { "$$Brand.name": { $in : ["Reebok", "Adidas"]}}
                }
             }
          }
       }
    ])
    


    1. switchcaseを使用してコレクション内の複数のドキュメントを更新する

    2. モジュール'../build/Release/bson']コードが見つかりません:'MODULE_NOT_FOUND'} js-bson:純粋なJSバージョンを使用してc++bson拡張機能を読み込めませんでした

    3. MongoError:ドキュメントの検証に失敗しました-floatとintの両方を同じフィールドに挿入する方法-これはdoubleとしてマークされていますか?

    4. ソートされたセットでDIFFを取得する方法