sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur returnerar man variantvärdena för varje produkt om den produkten är en variant?

Du bör kunna uppnå detta med $unwind och $group i din aggregeringspipeline. Detta förenar först varje attribut till ett enda dokument och på dem kan du gruppera efter attributvärdet.

Slutligen kan du använda $project för att få önskat namn för attributeValue :

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

Se detta förenklade exempel på mongoplayground:https://mongoplayground.net/p/VASadZnDedc




  1. Det gick inte att ansluta till MongoLab auth fails-fel

  2. Spring Boot Mongodb sökning med ID returnerar null

  3. Ger en deluppdatering av ett MongoDb-dokument i WiredTiger någon fördel jämfört med en fullständig dokumentuppdatering?

  4. Mongodb - Map-Reduce - Fullständig data returneras inte