Да, но не както ти искаш. Ако направите следното, ще получите обратно само първия елемент от масива:
coll.find({_id:'2'}, { 'objects.0': 1})
Но това, което наистина искате, е нещо, което изглежда по следния начин:
coll.find({_id:'2', 'objects._id': '3'}, { 'objects.$' : 1})
Разбира се, това всъщност не работи в MongoDB.
Гледайки другия ви въпрос , това е една от причините да използвате "вградения обект" вместо "масива от обекти". С „вграден обект“ можете да направите следното:
coll.find({_id:'2'}, {'objects.3': 1}) // where 3 is the id of the third object
Това ви позволява да изберете само "вградените обекти", от които се нуждаете.
Нещото с MongoDB е, че родителският документ е винаги извлечено. Заявките връщат документи от най-високо ниво. Това е вградено в цялата архитектура. Дори ако поискате само част от документа, сървърът пак трябва да зареди целия документ в паметта, преди да ви сервира исканата част.
Единственият начин за това може да бъде новата Aggregation Framework , но това все още не е в стабилния клон.