【发布时间】:2016-09-10 12:21:24
【问题描述】:
这是 1:N 关系的例子。 有一个根项,由几个项(子项)组成:
{
"_id" : ObjectId("52d017d4b60fb046cdaf4851"),
"dates" : [
1399518702000,
1399126333000,
1399209192000,
1399027545000
],
"dress_number" : "4",
"name" : "J. Evans",
"numbers" : [
"5982",
"5983",
"5984",
"5985"
],
"goals": [
"1",
"0",
"4",
"2"
],
"durations": [
"78",
"45",
"90",
"90"
]
}
我想要做的是显示来自根项目的子数据:
{
"dates": "1399518702000",
"numbers": "5982",
"goals": "1",
"durations: "78"
},
{
"dates": "1399126333000",
"numbers": "5983",
"goals": "0",
"durations": "45"
},
{
"dates": "1399209192000",
"numbers": "5984",
"goals": "4",
"durations": "90"
},
{
"dates": "1399027545000",
"numbers": "5985",
"goals": "2",
"durations": "90"
}
在表结构中会是这样的:
根项目:
name number
J. Evans 4
儿童用品
dates numbers goals durations
1399518702000 5982 1 78
1399126333000 5983 0 45
1399209192000 5984 4 90
1399027545000 5985 2 90
我正在尝试使用$unwind 运算符来执行这种情况:
db.coll.aggregate([{ $unwind: "dates" }, { $unwind: "numbers" }, { $unwind: "goals" }, { $unwind: "durations"} ])
但是查询没有给出预期的数据:/ Here 是很好的解决方案,但只适用于两个数组。
【问题讨论】:
标签: mongodb mongodb-query aggregation-framework