我是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"}
]
不工作。任何人都可以告诉我,我做错了什么。还有其他办法吗?
答案 0 :(得分:1)
如果您$unwind
数组字段items.discounts
为空,则结果输出不是文档。要保留这些文档,请启用preserveNullAndEmptyArrays
的{{1}}选项:
$unwind