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

その製品がバリアントである場合、各製品のバリアント値を返す方法は?

    $unwindを使用してこれを達成できるはずです および$group 集約パイプラインで。これにより、最初に各属性が1つのドキュメントにフラット化され、属性値でグループ化できます。

    最後に、$projectを使用できます attributeValueの目的の名前を取得します :

    db.collection.aggregate([
      {
        $unwind: "$attributeSet"
      },
      {
        $group: {
          _id: "$attributeSet.value",
          data: {
            "$addToSet": {
              productId: "$productId"
            }
          }
        }
      },
      {
        "$project": {
          _id: 0,
          data: 1,
          attributeValue: "$_id"
        }
      }
    ])
    

    mongoplaygroundで次の簡単な例を参照してください: https://mongoplayground.net/p/VASadZnDedc




    1. golangでmongoクエリのbson形式を書く方法は?

    2. .insertOneは関数ではありません

    3. MongoDB ts.t(tsはタイムスタンプタイプ)を指定してエントリを見つけることができません

    4. Meteor Collectionに複数のドキュメントを挿入することは、純粋なmongodbと同じように機能しますか?