MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

union sur la même collection dans mongodb

L'opérateur MongoDB le plus proche de ce que vous recherchez est un $or , mais ce n'est pas tout à fait la même chose qu'une UNION SQL qui combine deux requêtes distinctes en un seul résultat. Les requêtes MongoDB portent toujours sur une seule collection, mais $or vous permet d'avoir plusieurs clauses de requête.

Par exemple :

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

Étant donné que vous êtes limité à interroger une seule collection, les résultats seront déjà dédupliqués au niveau du document et tous les résultats partageront le même ordre de tri si celui-ci est spécifié.

Si vous souhaitez simuler une UNION (ou une autre opération fonctionnant avec plusieurs collections/requêtes) dans MongoDB, vous devrez écrire plusieurs requêtes et fusionner les ensembles de résultats dans votre code d'application.