Gow*_*kan 2 mongodb mongodb-query aggregation-framework
我是 mongodb 聚合的新手。我的 mongo 文档有很多数组。我需要将其导出为平面文件。为此,我需要构建它。我尝试了以下聚合:
[
{$unwind : "$items" },
{$unwind : "$items.discounts"},
{$unwind : "$payments"},
{$unwind : "$payments.items"},
{$unwind : "$payments.refunds"}
]
Run Code Online (Sandbox Code Playgroud)
它起作用了,然后我只是添加了以下条件来过滤数据
[
{$match : { "updatedtime": { $gt: 1514764800000}}},
{$unwind : "$items" },
{$unwind : "$items.discounts"},
{$unwind : "$payments"},
{$unwind : "$payments.items"},
{$unwind : "$payments.refunds"}
]
Run Code Online (Sandbox Code Playgroud)
返回 0 行,我再次尝试使用 match 语句
[
{$match : { "updatedtime": { $gt: 1514764800000}}}
]
Run Code Online (Sandbox Code Playgroud)
它再次起作用。
[
{$match : { "updatedtime": { $gt: 1514764800000}}},
{$unwind : "$items" }
]
Run Code Online (Sandbox Code Playgroud)
作品。
[
{$match : { "updatedtime": { $gt: 1514764800000}}},
{$unwind : "$items" },
{$unwind : "$items.discounts"}
]
Run Code Online (Sandbox Code Playgroud)
不工作。谁能告诉我是我做错了什么。有没有其他方法可以做到这一点?
如果$unwind像items.discounts这样的数组字段是空的,则结果输出是没有文档。要保留这些文档,请启用以下preserveNullAndEmptyArrays选项$unwind:
[
{$match : { "updatedtime": { $gt: 1514764800000}}},
{$unwind : "$items" },
{$unwind : {path: "$items.discounts", preserveNullAndEmptyArrays: true}}
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2394 次 |
| 最近记录: |