MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment interroger un ensemble d'objets avec un tableau de valeurs dans mangouste ?

Vous pouvez utiliser une combinaison de $objectToArray et $arrayToObject pour filtrer votre objet par des noms de champs dynamiques mais si vos paramètres sont connus lorsque vous construisez votre requête, il est plus facile d'utiliser régulièrement .find() et appliquer la projection :

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