我覺得我一定會錯過一些明顯的東西。這裏是聚集,作爲一個將它張貼在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