Най-лесният начин да постигнете резултата си е да използвате нормална заявка за намиране и $slice
оператор:
db.collection.find( {_id: "User1"}, {"likes.sublikes": {$slice: 1}} )
Рамката за агрегиране (както при MongoDB 2.4.1) не поддържа $slice
или масивни индекси (заявки за функции за гласуване/гледане:SERVER-6074
и SERVER-4589
).
Можете да направите това в рамка за агрегиране, като използвате $unwind
, $group
и $first
оператор, например:
db.collection.aggregate([
{ $match: {
_id : "User1"
}},
{ $unwind: "$likes.sublikes" },
{ $group: {
_id: "$_id",
like: { $first: "$likes.sublikes" }
}},
{ $project: {
_id: 0,
"UserID": "$_id",
"WebsiteName": "$like.WebsiteName"
}}
])
Нормалният $slice
трябва да е най-производителната опция.