Le moyen le plus simple d'obtenir votre résultat consiste à utiliser une requête de recherche normale et le $slice
opérateur :
db.collection.find( {_id: "User1"}, {"likes.sublikes": {$slice: 1}} )
Le framework d'agrégation (comme dans MongoDB 2.4.1) ne prend pas en charge $slice
ou index de tableau (vote/watch feature requests :SERVER-6074
et SERVER-4589
).
Vous pouvez le faire dans le cadre d'agrégation en utilisant $unwind
, $group
et le $first
opérateur, par exemple :
db.collection.aggregate([
{ $match: {
_id : "User1"
}},
{ $unwind: "$likes.sublikes" },
{ $group: {
_id: "$_id",
like: { $first: "$likes.sublikes" }
}},
{ $project: {
_id: 0,
"UserID": "$_id",
"WebsiteName": "$like.WebsiteName"
}}
])
Le $slice
normal devrait être l'option la plus performante.