我可以从 Mongo 聚合中得到嵌套数组的结果:
"vals": [
[ [ { "reference_date": "2013-09-01", "price": 79 },
{ "reference_date": "2013-09-02", "price": 69 },
{ "reference_date": "2013-09-03", "price": 101 }, ] ],
[ [ { "reference_date": "2013-08-01", "price": 101 },
{ "reference_date": "2013-08-02", "price": 106 },
{ "reference_date": "2013-08-03", "price": 101 }, ] ],
[ [ { "reference_date": "2013-07-01", "price": 129 },
{ "reference_date": "2013-07-02", "price": 163 },
{ "reference_date": "2013-07-03", "price": 192 }, ] ],
]
我正在使用这个查询:
coll.aggregate([
{ $match: { 'account_id': '123', }, },
{ $group: {
_id: { 'account': '$account_id' },
vals: { $push: '$data.prices' } }, },
]);
我的基础文档如下所示:
{'account_id': '123',
. . . other stuff . . .
'data': [{
'prices': [
{ "reference_date": "2013-08-01", "price": 101 },
{ "reference_date": "2013-08-02", "price": 106 },
{ "reference_date": "2013-08-03", "price": 101 },
],
. . . other stuff under data key . . .
}]
如何修改查询,以便将嵌套数组组合成一个数组,只包含对象项?
更新:提供基础文档的更完整视图。抱歉,以前没有。
更新 2 嗯,我是一个糟糕的提问者,我的 << data >> subdoc 失败 b/c data 下的值不是一个对象,它是一个只包含一个对象的数组。我正在为试图弄清楚该对象的提取而烦恼,答案将起作用。