Cách dễ nhất để đạt được kết quả của bạn là sử dụng truy vấn tìm kiếm thông thường và $slice
nhà điều hành:
db.collection.find( {_id: "User1"}, {"likes.sublikes": {$slice: 1}} )
Khung tổng hợp (như ở MongoDB 2.4.1) không hỗ trợ $slice
hoặc chỉ mục mảng (yêu cầu tính năng bỏ phiếu / xem: SERVER-6074
và SERVER-4589
).
Bạn có thể thực hiện việc này trong khung tổng hợp bằng cách sử dụng $unwind
, $group
và $first
toán tử, ví dụ:
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
bình thường nên là tùy chọn hiệu quả nhất.