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

MongoDB агрегат, как да добавитеToSet всеки елемент от масива в груповия конвейер

За да имитирате функционалност на $addToSet оператор за актуализиране с $each модификатор в конвейера за агрегиране, можете да използвате комбинация от $push на етап групиране и $reduce + $setUnion на етап на проекция. Напр.:

db.collection.aggregate([
    {$group:{
       _id: null,
       selectedTags: { $push: '$tags' }      
    }},
    {$project: {
        selectedTags: { $reduce: {
            input: "$selectedTags",
            initialValue: [],
            in: {$setUnion : ["$$value", "$$this"]}
        }}
    }}
])

резултати с един документ, който съдържа отделен списък с тагове от всички документи в selectedTags масив.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB „не може да намери индекс за $geoNear заявка“

  2. Как да настроите FeatureCompatibilityVersion в MongoDB

  3. MongoDB $ceil

  4. MongoDB $split

  5. Как да намеря пресечната точка на набори между документите в една колекция в MongoDB?