Tôi biết rằng những gì bạn đang cố gắng làm đều có thể thực hiện được với MongoDB. aggregate()
lệnh có thể lấy bao nhiêu đối số mà bạn cần.
Trong trình bao mongo, một lệnh như thế này
db.collection.aggregate(
{ $project: {
_id: 1,
items: 1
} },
{ $unwind: '$items' },
{ $unwind: '$items.images' }
);
sẽ giải phóng các items
subocument, sau đó là images
subocument.
Dựa trên mã trong câu hỏi của bạn, có lẽ điều này sẽ hoạt động
$project = array(
'$project' => array(
'_id' => 1,
'items' => 1,
)
);
$unwind_items = array(
'$unwind' => '$items'
);
$unwind_images = array(
'$unwind' => '$items.images'
);
$query = $mongo->store->aggregate($project,$unwind_items,$unwind_images);