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

Como excluir dos resultados da pesquisa documentos com campos que não estão presentes na consulta?


Devo admitir que não conheço nenhum método de consulta normal para resolver esse problema. Existe apenas uma maneira que eu conheço e é usar a comparação de objetos do MongoDBs. Para fazer isso, você mudaria sua estrutura para algo como:
{
    ps: [a,b]
}

ou:
{
    ps: {p1:a,p2:b}
}

E então você faria uma consulta como:
db.col.find({ p: [a,b] })

ou:
db.col.find({ p: {p1:a, p2:b} })

Há um problema imediato com isso embora. Depende da ordem das chaves, o que significa que se o seu a e b são na verdade o contrário em outro documento, ele não corresponderá. Portanto, você precisará certificar-se de que se preocupa com o pedido ao salvar se fizer isso.

Espero que ajude,