Dit is het gedrag van het filteren van ingesloten documenten op meerdere niveaus, normaal gesproken zou het overeenkomende filter het hele document retourneren, niet de subsets.
Gewoonlijk positional operator $
gebruikt om overeen te komen met de subdocumenten in updates
. Maar de functie is nog niet geïmplementeerd in retourspecificaties.
Er is al een openstaand probleem in mongo Ondersteuning voor positionele ($) operator in velden om specificatie terug te geven . (Gelieve in te loggen om te stemmen als je de functie echt nodig had)
Dus je moet je schema opnieuw ontwerpen om dit aan te kunnen, het kan zo zijn
db.test.insert({"person" : [ { "id":1, "details" : { "name" : "Aswini", "Age" : 10 }}]})
db.test.insert({"person" : [ { "id":2, "details" : { "name" : "Mahesh", "Age" : 11}}]})
db.test.find({"person.id":1},{'person.details':1})