gpt4 book ai didi

Mongodb $unwind 聚合不起作用

转载 作者:行者123 更新时间:2023-12-01 22:07:07 27 4
gpt4 key购买 nike

我是 mongodb 聚合的新手。我的 mongo 文档有很多数组。我需要将其导出为平面文件。为此,我需要构建它。我尝试了以下聚合:

[
{$unwind : "$items" },
{$unwind : "$items.discounts"},
{$unwind : "$payments"},
{$unwind : "$payments.items"},
{$unwind : "$payments.refunds"}
]

成功了,然后我添加了以下条件来过滤数据

[
{$match : { "updatedtime": { $gt: 1514764800000}}},
{$unwind : "$items" },
{$unwind : "$items.discounts"},
{$unwind : "$payments"},
{$unwind : "$payments.items"},
{$unwind : "$payments.refunds"}
]

返回 0 行,我再次尝试单独使用 match 语句

[
{$match : { "updatedtime": { $gt: 1514764800000}}}
]

它再次工作。

[
{$match : { "updatedtime": { $gt: 1514764800000}}},
{$unwind : "$items" }
]

有效。

[
{$match : { "updatedtime": { $gt: 1514764800000}}},
{$unwind : "$items" },
{$unwind : "$items.discounts"}
]

不工作。谁能告诉我我做错了什么。还有其他方法吗?

最佳答案

如果你$unwinditems.discounts 这样的空数组字段,结果输出是没有文档。要保留这些文档,请启用 $unwindpreserveNullAndEmptyArrays 选项:

[
{$match : { "updatedtime": { $gt: 1514764800000}}},
{$unwind : "$items" },
{$unwind : {path: "$items.discounts", preserveNullAndEmptyArrays: true}}
]

关于Mongodb $unwind 聚合不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50876949/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com