mongodb - 该字段必须是累加器对象。 (该字段是日期字符串。)

标签 mongodb aggregate-functions

我正在尝试按日期字符串进行分组并计算每个日期有多少数据。

首先,我将 ISOdate 转换为日期字符串:

db.test.aggregate([
    {
        $project: {
                yearMonthDay: { $dateToString: { format: "%Y-%m-%d", date: "$file_date" } }
        }
    },
])

结果:

nter image description here

到目前为止一切都很好,直到我这样做:

db.closing_nassau.aggregate([
    {
        $project: {
                yearMonthDay: { $dateToString: { format: "%Y-%m-%d", date: "$detail.file_date" } }
        }
    },
    { $group: { date: "$yearMonthDay", count: { $sum: 1 } } },
])

它一直显示:

"message" : "The field 'date' must be an accumulator object"

我认为这应该有效。我首先将 ISOdate 转换为日期字符串。我按日期字符串分组并计算每个日期。我尝试删除 count: { $sum: 1 }它仍然显示相同的错误,因此问题出在分组依据上。

请随时询问更多信息,以便为我提供帮助。

最佳答案

您应该使用_id来指定分组键:

db.closing_nassau.aggregate([
    {
        $project: {
                yearMonthDay: { $dateToString: { format: "%Y-%m-%d", date: "$detail.file_date" } }
        }
    },
    { $group: { _id: "$yearMonthDay", count: { $sum: 1 } } },
])

看看here

关于mongodb - 该字段必须是累加器对象。 (该字段是日期字符串。),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55763552/

相关文章:

java - MongoDB Java 插入抛出 org.bson.codecs.configuration.CodecConfigurationException : Can't find a codec for class io. github.ilkgunel.mongodb.Pojo

sql - 使用 jsonb_set() 进行更新仅影响嵌套数组中的一个对象

performance - mongodb更新导致读取速度极慢

mongodb - 查询mongodb中嵌入文档的数组

mongodb - 使用 monger 与从属实例进行只读连接

node.js - 如何使 Mongoose 连接优雅地失败

mysql - 选择查询中的平均值、计数、分组依据

sql - SQL Server 中的 AVG

mysql - #1305 FUNCTION dbname.json_arrayagg 不存在

postgresql - 在别名上使用聚合函数?