首页 > 解决方案 > "unwinding": { "preserveNullAndEmptyArrays": false } 在 v3.4 聚合 $lookup 中不起作用

问题描述

我正在尝试使用查找阶段运行聚合管道。管道需要很长时间,所以我决定通过删除带有空数组的文档来优化展开阶段的管道。

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"

标签: mongodb

解决方案


根据这里的文档只$unwind支持preserveNullAndEmptyArrays,而不是$lookup. 顺便说一句,Mongo 的优化器会为您添加$unwind舞台$lookup,因此请随时$unwind在单独的舞台中添加。是有关查询优化的更多材料+您的具体示例$unwind+$lookup


推荐阅读