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

Come faccio a interrogare un insieme di oggetti con una matrice di valori in mangusta?

Puoi utilizzare una combinazione di $objectToArray e $arrayToObject per filtrare il tuo oggetto in base ai nomi dei campi dinamici, ma se i tuoi parametri sono noti durante la creazione della query, è più semplice utilizzare il normale .find() e applica la proiezione:

db.collection.find({},{ "rank.Person1": 1,  "rank.Person2": 1})

let input = ['Person1', 'Person2'];
let entries = input.map(p => ([`rank.${p}`, 1]))
let projection = Object.fromEntries(entries);
console.log(projection);

Mongo Playground