明らかな何かが欠けているに違いないような気がします。シェルに投稿するのと同じように、集計は次のようになります。
db.documents.aggregate(
{ $project: { title: 1, "date.year": 1, decade:
{ $subtract: ['$date.year', { $mod: ['$date.year', 10]}]}
}})
これは、それぞれdate.yearフィールドを持つドキュメントのリストを取得し、ドキュメントがどの10年にあるかを示す10年フィールドを追加することになっています(1900、1910など)。取得後にデータをさらに変換することを計画しています。それが追加されました。
問題は、集計を実行すると、次のようになることです。
{
"errmsg" : "exception: $subtract resulted in a non-numeric type",
"code" : 16413,
"ok" : 0
}
$subtractを$addに変更すると、正常に機能します(ただし、もちろん、正しい結果は得られません)。では、減算はどうなっているのでしょうか。減算すると数値ではなく、加算すると数値になるのはなぜですか?
前もって感謝します!