Bạn có thể sử dụng khung tổng hợp. Trước tiên, hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -
> db.getArrayDemo.insertOne(
{
"CustomerId":101,
"CustomerDetails":[
{
"CustomerName":"Larry",
"CustomerFriendDetails":[
{
"CustomerFriendName":"Sam"
},
{
"CustomerFriendName":"Robert"
}
]
},
{
"CustomerName":"Chris",
"CustomerFriendDetails":[
{
"CustomerFriendName":"David"
},
{
"CustomerFriendName":"Carol"
}
]
}
]
}
);
{
"acknowledged" : true,
"insertedId" : ObjectId("5cda4949b50a6c6dd317adb7")
} Sau đây là truy vấn để hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find () -
> db.getArrayDemo.find().pretty();
Điều này sẽ tạo ra kết quả sau -
{
"_id" : ObjectId("5cda4949b50a6c6dd317adb7"),
"CustomerId" : 101,
"CustomerDetails" : [
{
"CustomerName" : "Larry",
"CustomerFriendDetails" : [
{
"CustomerFriendName" : "Sam"
},
{
"CustomerFriendName" : "Robert"
}
]
},
{
"CustomerName" : "Chris",
"CustomerFriendDetails" : [
{
"CustomerFriendName" : "David"
},
{
"CustomerFriendName" : "Carol"
}
]
}
]
} Sau đây là truy vấn để lấy mảng từ bộ sưu tập MongoDB -
> db.getArrayDemo.aggregate([
{ "$unwind": "$CustomerDetails" },
{ "$unwind": "$CustomerDetails.CustomerFriendDetails"},
{
"$group": {
"_id": null,
"CustomerFriendDetails": { "$push": "$CustomerDetails.CustomerFriendDetails.CustomerFriendName" }
}
}
]); Điều này sẽ tạo ra kết quả sau -
{ "_id" : null, "CustomerFriendDetails" : [ "Sam", "Robert", "David", "Carol" ] }