MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да върна стойностите на варианта на всеки продукт, ако този продукт е вариант?

Трябва да можете да постигнете това с помощта на $unwind и $group във вашия тръбопровод за агрегиране. Това първо изравнява всеки атрибут в един документ и върху тези, които можете да групирате по стойността на атрибута.

И накрая, можете да използвате $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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Добавяне на набор от вторични реплики в същата машина?

  2. MongoDB $isArray

  3. Изберете Max() с група по в mongodb

  4. Mongoose позволява ли едновременно множество заявки за база данни?

  5. Spark Mongo конектор, MongoShardedPartitioner не работи