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

Como faço para consultar um conjunto de objetos com uma matriz de valores no mangusto?


Você pode usar uma combinação de $objectToArray e $arrayToObject para filtrar seu objeto por nomes de campo dinâmicos, mas se seus parâmetros são conhecidos quando você está construindo sua consulta, é mais fácil usar o .find() e aplique a projeção:
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