【发布时间】:2017-09-23 15:34:15
【问题描述】:
我从 Mongodb 聚合操作中得到这个异常:
无法从 BSON 类型字符串转换为日期 (16006))。
我看到有关同一主题的其他问题,但我非常确定以下代码中的字段“日期”保存为日期类型字段。这是我想要做的:
db.schemes.aggregate([
{"$project": {
date_day: {$dayOfMonth: "$date"},
date_month: {$month: "$date"},
date_year: {$year: "$date"},
net_asset: "$net_asset"
}},
{"$match": {scheme_code: "ABC"}},
{$group: {
_id: {
date_month: "$date_month",
date_year: "$date_year"},
net_asset: {$first: "$net_asset"},
day_date: {$first: "$date_day"}
}
}
])
这是一个示例文档:
db.schemes.findOne()
{
"_id": ObjectId("586a87d5ab0de166ea000001"),
"scheme_code": "H01",
"scheme_name": "ABC",
"date": ISODate("2016-12-28T00:00:00Z"),
"net_asset": 48.452,
"updated_at": ISODate("2017-01-02T17:03:17.264Z"),
"created_at": ISODate("2017-01-02T17:03:17.264Z")
}
另外请注意,如果最后一个组运算符被删除,则不会发生错误,因此与此有关。
任何关于如何调试这个的指针将不胜感激。
谢谢。
【问题讨论】:
-
嗨,伊修;我可以提出两个请求吗?您能否在 mongo shell 中发布一个等效聚合的示例?这对于非 Rails 用户来说更容易理解。其次,您能否发布一个您正在聚合的文档的示例,让每个人都清楚地看到字段和数据类型是什么?
-
嗨 @VinceBowdren 刚刚添加了 Mongo 参考。另请注意,如果我删除最后一个组运算符,一切都会正常运行。但是,组对我的要求非常重要。稍后编辑示例文档的帖子。