Den MongoDB-operatör som ligger närmast det du letar efter är en $or
, men det är inte riktigt detsamma som en SQL UNION som kombinerar två separata frågor till ett enda resultat. MongoDB-frågor är alltid mot en enda samling, men $or
låter dig ha flera frågesatser.
Till exempel:
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}
)
Eftersom du är begränsad till att fråga efter en enskild samling kommer resultaten redan att dedupliceras på dokumentnivå och alla resultat kommer att dela samma sorteringsordning om en sådan anges.
Om du vill simulera en UNION (eller annan operation som arbetar med flera samlingar/frågor) i MongoDB, måste du skriva flera frågor och slå samman resultatuppsättningarna i din applikationskod.