如何从 MongoDB 集合中获取数组?
你可以使用聚合框架。我们首先创建一个包含文档的集合 -
> 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")
}以下是使用 find() 方法从集合中显示所有文档的查询 -
> db.getArrayDemo.find().pretty();
这将生成以下输出 -
{
"_id" : ObjectId("5cda4949b50a6c6dd317adb7"),
"CustomerId" : 101,
"CustomerDetails" : [
{
"CustomerName" : "Larry",
"CustomerFriendDetails" : [
{
"CustomerFriendName" : "Sam"
},
{
"CustomerFriendName" : "Robert"
}
]
},
{
"CustomerName" : "Chris",
"CustomerFriendDetails" : [
{
"CustomerFriendName" : "David"
},
{
"CustomerFriendName" : "Carol"
}
]
}
]
}以下是从 MongoDB 集合中获取数组的查询 -
> db.getArrayDemo.aggregate([
{ "$unwind": "$CustomerDetails" },
{ "$unwind": "$CustomerDetails.CustomerFriendDetails"},
{
"$group": {
"_id": null,
"CustomerFriendDetails": { "$push": "$CustomerDetails.CustomerFriendDetails.CustomerFriendName" }
}
}
]);这将生成以下输出 -
{ "_id" : null, "CustomerFriendDetails" : [ "Sam", "Robert", "David", "Carol" ] }
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP