Това е поведението при филтриране на многостепенен вграден документ, обикновено съвпадащият филтър би върнал целия документ, а не подгрупите.
Обикновено positional operator $
използвани за съпоставяне на поддокументите в updates
. Но функцията все още не е внедрена в спецификаторите за връщане.
Вече има нерешен проблем в mongo Поддръжка за позиционен ($) оператор в полета за връщане на спецификатор . (Моля, влезте, за да гласувате, ако наистина имате нужда от функцията)
Така че трябва да препроектирате схемата си, за да се справите с това, може да е така
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})