Operator MongoDB najbliższy temu, czego szukasz, to $or
, ale to nie to samo, co SQL UNION, który łączy dwa oddzielne zapytania w jeden wynik. Zapytania MongoDB zawsze dotyczą jednej kolekcji, ale $or
pozwala mieć wiele klauzul zapytań.
Na przykład:
db.collection.find(
// Find documents matching any of these values
{$or:[
{var1: 123},
{var2: 456},
{var3: 789}
]}
).sort(
// Sort in ascending order
{var1:1, var2:1, var3:1}
)
Ponieważ ograniczasz się do wysyłania zapytań do pojedynczego zbioru, wyniki zostaną już zdeduplikowane na poziomie dokumentu, a wszystkie wyniki będą miały ten sam porządek sortowania, jeśli zostanie określony.
Jeśli chcesz zasymulować UNION (lub inną operację działającą z wieloma kolekcjami/zapytaniami) w MongoDB, będziesz musiał napisać wiele zapytań i scalić zestawy wyników w kodzie aplikacji.