Den MongoDB-operatør, der er tættest på det, du leder efter, er en $or
, men det er ikke helt det samme som en SQL UNION, der kombinerer to separate forespørgsler til et enkelt resultat. MongoDB-forespørgsler er altid mod en enkelt samling, men $or
giver dig mulighed for at have flere forespørgselsklausuler.
For eksempel:
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}
)
Da du er begrænset til at forespørge på en enkelt samling, vil resultater allerede være de-duplikeret på dokumentniveau, og alle resultater vil dele den samme sorteringsrækkefølge, hvis en er angivet.
Hvis du ønsker at simulere en UNION (eller anden operation, der arbejder med flere samlinger/forespørgsler) i MongoDB, bliver du nødt til at skrive flere forespørgsler og flette resultatsættene i din applikationskode.