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

Come escludere dai risultati della ricerca documenti con campi che non sono presenti nella query?

Devo ammettere che non conosco alcun metodo di interrogazione normale con cui risolvere questo problema. C'è solo un modo che conosco ed è usare il confronto di oggetti MongoDBs. Per fare ciò cambieresti la tua struttura per essere qualcosa sulla falsariga di:

{
    ps: [a,b]
}

oppure:

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

E poi interrogherai come:

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

oppure:

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

C'è un problema immediato con questo però. Dipende dall'ordine delle chiavi, il che significa che se il tuo a e b sono in realtà il contrario in un altro documento che non corrisponderà. Quindi dovrai assicurarti che ti preoccupi dell'ordine quando risparmi se lo fai.

Spero che ti aiuti,