我正在設計我的第一個MongoDB(和第一個NoSQL)數據庫,並且想要在集合中存儲關於文件的信息。作爲每個文件文件的一部分,我想存儲文件訪問的日誌(讀取和寫入)。使用MongoDB記錄文件訪問
我正在考慮創建日誌消息的陣列作爲文檔的一部分:
{
"filename": "some_file_name",
"logs" : [
{ "timestamp": "2012-08-27 11:40:45", "user": "joe", "access": "read" },
{ "timestamp": "2012-08-27 11:41:01", "user": "mary", "access": "write" },
{ "timestamp": "2012-08-27 11:43:23", "user": "joe", "access": "read" }
]
}
每個日誌消息將包含時間戳,訪問類型,以及訪問該文件的人的用戶名。我認爲這樣可以非常快速地訪問特定文件的日誌,這可能是日誌中最常用的操作。
我知道MongoDB的文檔大小限制爲16Mbyte。我想象那些經常訪問的文件可能會推動這個限制。
有沒有更好的方法來設計這種類型的日誌記錄的NoSQL架構?
一個替代方案是單獨的集合'logs'(每個條目都有它引用的文件名)。 – Thilo