比方说,我返回了一些基于日期的汇总。数据来自上个月。 经过汇总计算后,上个月的每一天都没有数据。聚合管道中是否有一种方法可以指示Mongo为丢失的数据点提供一些默认文档(或默认值,例如null)?
也许是$ addToSet运算符,但是如何添加这些人工文档?
填补业务逻辑空白是唯一的方法吗?
答案 0 :(得分:1)
您可以使用以下查询:
db.collection.aggregate([
{"$addFields":{ "datefield":"$datefield"}},
])
我认为,如果文档中不存在该字段,则会添加空值。 但是,不能在mongo中添加人工文档。
答案 1 :(得分:0)
这不是我想要实现的目标。
假设我在文档中有$ date属性,并且在今年最火的一周的几天内进行汇总。根据我拥有的数据,它可能会导致以下结果(日期格式为dd-MM-yyyy:
[
{date: "01-01-2018", value: 1},
{date: "04-01-2018", value: 2},
{date: "07-01-2018", value: 3},
]
因为其他日期,MongoDB中根本没有数据。 但在这种情况下,我希望收到以下结果:
[
{date: "01-01-2018", value: 1},
{date: "02-01-2018", value: null},
{date: "03-01-2018", value: null},
{date: "04-01-2018", value: 2},
{date: "05-01-2018", value: null},
{date: "06-01-2018", value: null},
{date: "07-01-2018", value: 3},
]
是否有可能或必须更改业务逻辑中的列表?