sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cómo excluir de los resultados de búsqueda documentos con campos que no están presentes en la consulta?

Debo admitir que no conozco ningún método de consulta normal para resolver este problema. Solo conozco una forma y es usar la comparación de objetos de MongoDB. Para hacer esto, cambiaría su estructura para que sea algo así como:

{
    ps: [a,b]
}

o:

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

Y luego consultarías como:

db.col.find({ p: [a,b] })

o:

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

Sin embargo, hay un problema inmediato con esto. Depende del orden de las teclas, lo que significa que si su a y b son en realidad al revés en otro documento que no coincidirá. Por lo tanto, deberá asegurarse de que se preocupa por el orden al guardar si hace esto.

Espero que ayude,