Най-близкият оператор MongoDB до това, което търсите, е $or
, но това не е съвсем същото като SQL UNION, който комбинира две отделни заявки в един резултат. Заявките на MongoDB винаги са срещу една колекция, но $or
ви позволява да имате множество клаузи за заявка.
Например:
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}
)
Тъй като сте ограничени до заявка за една колекция, резултатите вече ще бъдат премахнати на ниво документ и всички резултати ще споделят един и същ ред на сортиране, ако е посочен такъв.
Ако искате да симулирате UNION (или друга операция, работеща с множество колекции/заявки) в MongoDB, ще трябва да напишете множество заявки и да обедините наборите от резултати в кода на вашето приложение.