MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak zwrócić wartości wariantów każdego produktu, jeśli ten produkt jest wariantem?

Powinieneś być w stanie to osiągnąć za pomocą $unwind i $group w potoku agregacji. To najpierw spłaszcza każdy atrybut w pojedynczym dokumencie, a te, które możesz pogrupować według wartości atrybutu.

Wreszcie możesz użyć $project aby uzyskać żądaną nazwę dla attributeValue :

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

Zobacz ten uproszczony przykład na mongoplayground:https://mongoplayground.net/p/VASadZnDedc




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak filtrować i mapować tablicę dokumentów w zapytaniu MongoDB?

  2. Zrozumienie agregatu MongoDB i GroupBy

  3. Jak wyodrębnić znacznik czasu z obiektu mongodb w postgresie?

  4. Skonfiguruj rozmiar fragmentu GridFS w MongoDB

  5. Jak mogę połączyć się z MongoDB Atlas za pomocą Robomongo?