Chodzi mi o taki przypadek ze mam dwie kolekcje z danymi które się częściowo pokrywają. chce odfiltrować według pewnych kryteriów jedną z nich i połączyć z drugą, ale żeby duplikatów nie mieć. Wymyśliłam rozwiązanie, podam je tu bo może ktoś je ulepszy lub skrytykuje a jak nie to się komuś przyda:
Przed łączenie lookup w kolekcja1 po _id z kolekcja2 dodający te _id w polu dodanepole
Zostawienie tylko rekordów .....eeee dokumentów dla których "dodanepole" : { $exists: true, $eq: [] }
Zrobienie unionWith.
edit:
wiem ze jest jakieś distinct ale w ogóle nie pasuje do tego problemu
0
0
Przy union to nie zadziala distinct, bys musiala chyba zorbic grupowanie po tym twoim unionWIth?
db.kolekcja1.aggregate([
{ $unionWith: { coll: "kolekcja2" } },
{ $group: { _id: "$id", uniqueValues: { $addToSet: "$id" } } }
]);
albo ewentualnie zroibc $merge