Nejbližší operátor MongoDB k tomu, co hledáte, je $or
, ale to není úplně stejné jako SQL UNION, která kombinuje dva samostatné dotazy do jednoho výsledku. Dotazy MongoDB jsou vždy proti jedné kolekci, ale $or
umožňuje mít více klauzulí dotazu.
Například:
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}
)
Protože se omezujete na dotazování jedné kolekce, výsledky budou již na úrovni dokumentu deduplikovány a všechny výsledky budou sdílet stejné pořadí řazení, pokud je zadáno.
Pokud chcete simulovat UNION (nebo jinou operaci pracující s více kolekcemi/dotazy) v MongoDB, budete muset napsat více dotazů a sloučit sady výsledků v kódu vaší aplikace.