आप $objectToArray
के संयोजन का उपयोग कर सकते हैं और $arrayToObject
अपने ऑब्जेक्ट को डायनामिक फ़ील्ड नामों से फ़िल्टर करने के लिए लेकिन यदि आपके पैरामीटर ज्ञात हैं जब आप अपनी क्वेरी बना रहे हैं तो नियमित .find()
और प्रक्षेपण लागू करें:
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);