2016-07-27 79 views
0

的數據的有限量的我有文檔的文檔data(含有讀數),用於我的集合中的每個文件:MongoDB的:保持排序後的數組

{ 
    "_id": ..., 
    "data": { 
     "2016-07-24": {"reading1": 1}, 
     "2016-07-25": {"reading1": 2}, 
     "2016-07-26": {"reading1": 3} 
    } 
} 

數據與相同的格式定期加入。

密鑰必須是唯一的,因爲新的數據將替換舊數據(例如,"2016-07-25": {"reading1": 9}將取代上面列出的值)

如何只保留最近的10個條目(當鍵排序)?我可以用mongo查詢來做到這一點,還是應該使用應用程序端邏輯?

data轉成數組可能有效,但存在具有重複日期條目的問題。

感謝您的幫助!

回答

1

$slice數組更新操作符完全符合您的要求。查看文檔頁面上的examples

+0

看起來不錯。如果我這樣做,我認爲使用'upsert'來更新數據元素是正確的方法嗎? – humanoid

+0

應該工作,假設upsert語義是你需要的。 – helmy

+0

helmy:問題是我需要基於日期的數組元素是唯一的。 mongo似乎不允許我說「更新字段Y是baz的數組元素的字段X」,這正是我想要的。 – humanoid