結果を得る最も簡単な方法は、通常の検索クエリと$slice
を使用することです。 演算子:
db.collection.find( {_id: "User1"}, {"likes.sublikes": {$slice: 1}} )
集約フレームワーク(MongoDB 2.4.1のように)は$slice
をサポートしていません または配列インデックス(投票/監視機能のリクエスト: SERVER-6074
および
$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
最もパフォーマンスの高いオプションである必要があります。