Den nemmeste måde at opnå dit resultat på er at bruge en normal søgeforespørgsel og $slice
operatør:
db.collection.find( {_id: "User1"}, {"likes.sublikes": {$slice: 1}} )
Aggregeringsrammen (som ved MongoDB 2.4.1) understøtter ikke $slice
eller array-indekser (afstemning/se-funktionsanmodninger:SERVER-6074
og SERVER-4589
).
Du kan gøre dette i aggregeringsramme ved hjælp af $unwind
, $group
og $first
operatør, f.eks.:
db.collection.aggregate([
{ $match: {
_id : "User1"
}},
{ $unwind: "$likes.sublikes" },
{ $group: {
_id: "$_id",
like: { $first: "$likes.sublikes" }
}},
{ $project: {
_id: 0,
"UserID": "$_id",
"WebsiteName": "$like.WebsiteName"
}}
])
Den normale $slice
bør være den mest effektive mulighed.