La forma más fácil de lograr su resultado es usar una consulta de búsqueda normal y el $slice
operador:
db.collection.find( {_id: "User1"}, {"likes.sublikes": {$slice: 1}} )
El marco de agregación (como en MongoDB 2.4.1) no es compatible con $slice
o índices de matriz (solicitudes de función de votación/ver:SERVER-6074
y SERVER-4589
).
Podría hacer esto en el marco de agregación usando $unwind
, $group
y el $first
operador, por ejemplo:
db.collection.aggregate([
{ $match: {
_id : "User1"
}},
{ $unwind: "$likes.sublikes" },
{ $group: {
_id: "$_id",
like: { $first: "$likes.sublikes" }
}},
{ $project: {
_id: 0,
"UserID": "$_id",
"WebsiteName": "$like.WebsiteName"
}}
])
El $slice
normal debería ser la opción de mayor rendimiento.