我觉得我一定会错过一些明显的东西。这里是聚集,作为一个将它张贴在shell:为什么Mongo聚合不起作用?
db.documents.aggregate(
{ $project: { title: 1, "date.year": 1, decade:
{ $subtract: ['$date.year', { $mod: ['$date.year', 10]}]}
}})
这是应该采取的文件清单,每一个date.year场,并添加一个十年字段,表示该文件是一个十年在(1900年,1910年等)我计划进一步转换数据后,我得到的补充。
的问题是,当我运行聚集,我得到:
{
"errmsg" : "exception: $subtract resulted in a non-numeric type",
"code" : 16413,
"ok" : 0
}
如果我改变$减去至$添加,它工作正常(但不给我正确的结果,当然。 )那么减法是怎么回事?为什么我在减法时得到一个非数字类型,而在添加时却是一个数字?
在此先感谢!
工作得很好,当我尝试过。你的文档是什么样的? – JohnnyHK
嗨,约翰尼。以下是删节版本: '“title”:“某物或其他”。 “日期”:{ “年”:1969年, “月”:12, “天”:10, “全”:ISODate( “1970-01-10T07:00:00Z”) }' 我使用不同的日期字段,因为并非我正在使用的所有文档(我存储在数据库中的物理文档)都附有完整日期。 – Terrence
我知道完整日期与日期部分(年,月)不匹配。这是我接下来要解决的问题。 – Terrence