sql >> Database >  >> NoSQL >> MongoDB

MongoDB-aggregaat, hoe u elk element van de array in groepspijplijn aan ToSet kunt toevoegen

Om de functionaliteit van de $addToSet update-operator na te bootsen met $each modifier in de aggregatiepijplijn, kun je een combinatie gebruiken van $push in de groeperingsfase en $reduce + $setUnion in de projectiefase. Bijv.:

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

resultaten met een enkel document dat een duidelijke lijst met tags bevat van alle documenten in selectedTags reeks.



  1. wat is de beste strategie om gegevens tussen DB en redis-cache te synchroniseren?

  2. verwijder _id van mongo resultaat

  3. MongoDB $isoDayOfWeek

  4. Hoe voeg je een json toe aan een geneste array van een mongodb-document met Spring?