Der einfachste Weg, Ihr Ergebnis zu erzielen, ist die Verwendung einer normalen Suchabfrage und des $slice
Betreiber:
db.collection.find( {_id: "User1"}, {"likes.sublikes": {$slice: 1}} )
Das Aggregationsframework (wie bei MongoDB 2.4.1) unterstützt $slice
nicht oder Array-Indizes (Funktionsanfragen abstimmen/beobachten:SERVER-6074
). und SERVER-4589
).
Sie könnten dies im Aggregationsframework mit $unwind
tun , $group
und das $first
Operator, zB:
db.collection.aggregate([
{ $match: {
_id : "User1"
}},
{ $unwind: "$likes.sublikes" },
{ $group: {
_id: "$_id",
like: { $first: "$likes.sublikes" }
}},
{ $project: {
_id: 0,
"UserID": "$_id",
"WebsiteName": "$like.WebsiteName"
}}
])
Das normale $slice
sollte die leistungsstärkste Option sein.