sql >> Database >  >> NoSQL >> MongoDB

Hoe de variantwaarden van elk product retourneren als dat product een variant is?

Je zou dit moeten kunnen bereiken met $unwind en $group in uw aggregatiepijplijn. Dit maakt eerst elk attribuut samen tot een enkel document en daarop kunt u groeperen op attribuutwaarde.

Ten slotte kunt u $project . gebruiken om de gewenste naam te krijgen voor attributeValue :

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

Zie dit vereenvoudigde voorbeeld op mongoplayground:https://mongoplayground.net/p/VASadZnDedc




  1. 5 manieren om rijen te selecteren met de maximale waarde voor hun groep in SQL

  2. Hoe alfanumeriek sorteren in mongoDB?

  3. Mongoose Samengestelde Index Uniek + Sparse

  4. Converteren van LinkedHashMap naar Json String