Если ваши комментарии всегда находятся в предсказуемом порядке (т. Е. Сначала первым или самым последним), то вы можете использовать оператор $slice
для возврата только подмножества полного поля comments
при запросе:
test> db.foo.save({name: "hello", comments: [1, 2, 3, 4, 5]})
test> db.foo.find({}, {comments: {$slice: 3}})
{ "_id" : ObjectId("4ec7d1c8e72da9b6f31e2528"), "name" : "hello", "comments" : [ 1, 2, 3 ] }
test> db.foo.find({}, {comments: {$slice: -3}})
{ "_id" : ObjectId("4ec7d1c8e72da9b6f31e2528"), "name" : "hello", "comments" : [ 3, 4, 5 ] }
Подробнее об управлении возвращенными полями вы можете прочитать на http://www.mongodb.org/display/DOCS/Retrieving+a+Subset+of+Fields