Usunięcie powtarzających się dokumentów przy unii dwóch kolekcji

Usunięcie powtarzających się dokumentów przy unii dwóch kolekcji
Miang
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1801
0

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

CH
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 449
0

Przy union to nie zadziala distinct, bys musiala chyba zorbic grupowanie po tym twoim unionWIth?

Kopiuj
db.kolekcja1.aggregate([
  { $unionWith: { coll: "kolekcja2" } },
  { $group: { _id: "$id", uniqueValues: { $addToSet: "$id" } } }
]);

albo ewentualnie zroibc $merge

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.