我正在爲日誌管理系統設計我的第一個MongoDB數據庫模式,並且我想將日誌文件中的信息存儲到mongoDB,我無法決定我應該使用哪種模式文件(嵌入與參考)。MongoDB嵌入與大型數據文檔的參考模式
注:項目有許多來源和來源(超過1個000 000日誌在某些情況下),有許多日誌
{
"_id" : ObjectId("5141e051e2f56cbb680b77f9"),
"name" : "projectName",
"source" : [{
"name" : "sourceName",
"log" : [{
"time" : ISODate("2012-07-20T13:15:37Z"),
"host" : "127.0.0.1",
"status" : 200.0,
"level" : "INFO",
"message" : "test"
}, {
"time" : ISODate("2012-07-20T13:15:37Z"),
"host" : "127.0.0.1",
"status" : 200.0,
"level" : "ERROR",
"message" : "test"
}]
}]
}
我focuse是表現在從數據庫(不寫),例如讀取數據過濾,搜索,分頁等用戶可以按日期,狀態等過濾源日誌(所以我想專注於讀取性能,當用戶搜索或過濾數據)
我知道,MongoDB有一個16M字節的文檔大小限制,所以我擔心如果我要爲一個源提供1 000 000個日誌,這將如何工作(因爲我可以有一個項目的許多來源和來源可以有多個日誌)。我應該使用嵌入式還是參考模式時,如何處理大型文檔並希望具有良好的閱讀性能,哪種解決方案更好?謝謝