MongoDB填补缺失的结果

时间:2018-09-27 13:52:53

标签: mongodb aggregation-framework

比方说,我返回了一些基于日期的汇总。数据来自上个月。 经过汇总计算后,上个月的每一天都没有数据。聚合管道中是否有一种方法可以指示Mongo为丢失的数据点提供一些默认文档(或默认值,例如null)?

也许是$ addToSet运算符,但是如何添加这些人工文档?

填补业务逻辑空白是唯一的方法吗?

2 个答案:

答案 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},
]

是否有可能或必须更改业务逻辑中的列表?

相关问题