MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

union sulla stessa collezione in mongodb

L'operatore MongoDB più vicino a quello che stai cercando è un $or , ma non è esattamente la stessa cosa di un'unione SQL che combina due query separate in un unico risultato. Le query MongoDB sono sempre su una singola raccolta, ma $or ti consente di avere più clausole di query.

Ad esempio:

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}
)

Poiché sei limitato a eseguire query su una singola raccolta, i risultati saranno già deduplicati a livello di documento e tutti i risultati condivideranno lo stesso ordinamento se ne viene specificato uno.

Se desideri simulare una UNION (o un'altra operazione che lavora con più raccolte/query) in MongoDB, dovrai scrivere più query e unire i set di risultati nel codice dell'applicazione.