我觉得我一定遗漏了一些明显的东西。这是聚合,因为人们会将其发布在 shell 中:
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
}
如果我将 $subtract 更改为 $add,它可以正常工作(但当然不会给我正确的结果。)那么减法是怎么回事?为什么我减去时得到一个非数字类型,而当我加时得到一个数字?
提前致谢!