sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB-aggregat, hvordan man tilføjerToSet hvert element af array i gruppepipeline

For at efterligne funktionaliteten af ​​$addToSet-opdateringsoperatøren med $hver modifikator i aggregeringspipeline kan du bruge en kombination af $push på grupperingsstadiet og $reduce + $setUnion på projektionsstadiet. F.eks.:

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

resultater med et enkelt dokument, som indeholder en særskilt liste over tags fra alle dokumenter i selectedTags array.



  1. MongoDB-forespørgsel $in med regex-array af element

  2. Redis vs Service Bus til pub/sub-scenarie

  3. Hvordan undslipper man @ i en adgangskode i pymongo-forbindelse?

  4. MongoDB - Opret en database