MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

união na mesma coleção no mongodb


O operador MongoDB mais próximo do que você está procurando é um $or , mas isso não é exatamente o mesmo que um SQL UNION que combina duas consultas separadas em um único resultado. As consultas do MongoDB são sempre em uma única coleção, mas $or permite que você tenha várias cláusulas de consulta.

Por exemplo:
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}
)

Como você está limitado a consultar uma única coleção, os resultados já serão desduplicados no nível do documento e todos os resultados compartilharão a mesma ordem de classificação se uma for especificada.

Se você quiser simular um UNION (ou outra operação trabalhando com várias coleções/consultas) no MongoDB, você terá que escrever várias consultas e mesclar os conjuntos de resultados no código do aplicativo.