Několikrát jsem na to odpověděl ohledně vyzvednutí dílčích dokumentů pouze ze sbírky mongo zde a zde
Jednoduše v současné době neexistuje způsob, jak to udělat. Toto je chování filtrování víceúrovňového vloženého dokumentu, normálně by odpovídající filtr vrátil celý dokument, nikoli podmnožiny.
V mongu již existují dva nevyřešené problémy související s tímto pozičním ($) operátorem v polích pro návrat specifikátoru a Schopnost využívat data vnořeného dokumentu, jehož obsah byl použit k uspokojení dotazu pomocí operátoru $ . (Pokud tuto funkci opravdu potřebujete, přihlaste se, abyste mohli hlasovat.)
A vaše alternativní schéma zde také není užitečné.
takže musíte uložit každou funkci do samostatného dokumentu, jako je tento, aby fungovala tak, jak jste chtěli
funkce 1
{
'_id': SomeObjectId,
'name' :'some name',
'value': 'feature 1',
'some_field' : 'zzz'
}
funkce 2
{
'_id': SomeObjectId,
'name' :'some name',
'value': 'feature 2',
'some_field' : 'zzz'
}
a dotazování
db.features.find({'_id':someobjectid})
vrátí pouze konkrétní funkci