sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvordan returnerer man variantværdierne for hvert produkt, hvis det pågældende produkt er en variant?

Du burde være i stand til at opnå dette ved at bruge $unwind og $group i din aggregeringspipeline. Dette flader først hver attribut ud til et enkelt dokument, og på dem kan du gruppere efter attributværdien.

Endelig kan du bruge $project for at få det ønskede navn for attributeValue :

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

Se dette forenklede eksempel på mongoplayground:https://mongoplayground.net/p/VASadZnDedc




  1. Spørg MongoDB, om det er Master ud af et bashscript

  2. Sådan får du adgang til MongoDB

  3. Få navne på alle nøgler i samlingen

  4. Pålidelige biblioteker derude til Spring boot redis integrationstest