Questo è il comportamento del filtraggio di documenti incorporati a più livelli, normalmente il filtro corrispondente restituirebbe l'intero documento, non i sottoinsiemi.
Solitamente positional operator $
utilizzato per abbinare i documenti secondari in updates
. Ma la funzione non è ancora implementata negli specificatori di ritorno.
Esiste già un problema in sospeso in mongo Supporto per l'operatore posizionale ($) nei campi per restituire lo specificatore . (Accedi per votare se hai davvero bisogno della funzione)
Quindi devi ridisegnare il tuo schema per gestirlo, potrebbe essere così
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})