“ unwinding”:{“ preserveNullAndEmptyArrays”:false}在v3.4中不起作用聚合$ lookup

时间:2019-10-19 10:36:32

标签: mongodb

我正在尝试使用lookup stage运行聚合管道。 该管线需要很长时间,因此我决定在展开阶段通过删除空数组的文档来优化管线。

蒙戈(Mongo)网站上的文档表明,这应该可以工作,但只能在v3.4中使用。

我的查找阶段看起来像这样

    {
        "$lookup": {
            "from": "abc",
            "localField": "abc_id",
            "foreignField": "abc_id",
            "as": "abc_info",
            "unwinding": { "preserveNullAndEmptyArrays": false }
        }
     }

发现错误

    "arguments to $lookup must be strings, unwinding: { 
    preserveNullAndEmptyArrays: false } is type object"

2 个答案:

答案 0 :(得分:0)

根据文档here,只有$unwind支持preserveNullAndEmptyArrays,而不支持$lookup。顺便说一句,Mongo的优化程序为您将$unwind添加到$lookup阶段,因此可以随时在单独的阶段添加$unwindHere关于查询优化的更多内容+您的$unwind + $lookup的具体示例

答案 1 :(得分:0)

这是因为NULL中没有“展开”选项。

ELSE$lookup

中的另一个不同阶段

在查询中进行以下更改:

$unwind

那应该可以。