0
我有一個看起來像這樣的MongoDB文檔的集合:如何在MongoDB聚合查詢中返回多個字段?
{
"_id" : "123",
"created_by": "bob",
"date_added": ISODate("2014-08-27T17:43:23Z"),
"size": "XL",
"color": "red"
}
我試圖回答的問題是:什麼是商品的顏色最近每個人加入?
我這個地步得到:
db.stuff.aggregate([
{ $group: { _id: { who: "$created_by"}, added: { $max: "$date_added" } } },
])
{ "_id" : { "who" : "bob" }, "added" : ISODate("2014-09-30T07:06:38.135Z") }
{ "_id" : { "who" : "mike" }, "added" : ISODate("2014-09-30T07:10:03.098Z") }
{ "_id" : { "who" : "mary" }, "added" : ISODate("2014-09-30T07:07:27.787Z") }
{ "_id" : { "who" : "john" }, "added" : ISODate("2014-09-30T07:09:51.418Z") }
但是,它只返回用戶的名稱,並加入文檔時的日期。我無法弄清楚如何讓查詢也返回顏色。謝謝!
感謝您的幫助。但是,這不會產生正確的結果。將「$ first」運算符更改爲「$ last」作爲「color」字段應該生成相同的文檔(因爲我只想從最近添加的文檔中獲取顏色),但它不會。 – jamieb 2014-10-02 01:55:49
@jamieb,對不起,我犯了一個拼寫錯誤'$ sort:{data_added:-1}'。它應該是'$ sort:{date_added:-1}'。 – Wizard 2014-10-02 06:18:07