具有数组的mongodb结果到单个结果图

时间:2019-01-10 18:31:57

标签: mongodb nosql aggregation-framework

到目前为止,我有一个聚合查询正在完全按照我想要的方式进行操作,但是在最后一步,我一直在转换数据。我有以下内容:

{
    "name": "a",
    "tasks": [ { .. }, { .. }]
},
{
    "name": "b",
    "tasks": [ { .. }, { .. }]
}

我要做的就是将tasks中的每个条目映射到单独的结果。对我来说听起来很简单。

预期输出应为

{ "name": "a", "task": { .. } },
{ "name": "a", "task": { .. } },
{ "name": "b", "task": { .. } },
{ "name": "b", "task": { .. } }

我尝试使用{ $unwind: '$tasks' }希望可以得到单独的条目,但它似乎只会扩展第一个结果。我只能从a获得任务。

我也尝试过$map,但是有类似的问题。

如有必要,每个_id中都有一个task可用于唯一性。那就是我要完成的工作,键值对的映射,例如

{ "_id": "idFromTheTask", "name": "a" }

1 个答案:

答案 0 :(得分:1)

除非您的git update-index --chmod=+x 'scriptname.ext' 数组为空,否则

$unwind是正确的方法。在这种情况下,它将删除此类文档。为防止您可以使用tasks,请尝试:

preserveNullAndEmptyArrays

示例here