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

Agregat MongoDB, jak dodaćToSet każdy element tablicy w potoku grupowym

Aby naśladować funkcjonalność operatora aktualizacji $addToSet z $each modyfikatorem w potoku agregacji, można użyć kombinacji $push na etapie grupowania i $reduce + $setUnion na etapie projekcji. Np.:

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

wyniki z pojedynczym dokumentem, który zawiera odrębną listę tagów ze wszystkich dokumentów w selectedTags szyk.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Do serwera MongoDB nadal można uzyskać dostęp bez poświadczeń

  2. Meteor - collection.find() zawsze zwraca wszystkie pola

  3. Odłamki MongoDB i niezrównoważone obciążenia agregacji

  4. Indeks poddokumentów w mongo

  5. Dołącz ciąg na końcu istniejącego pola w MongoDB