我正在为日志管理系统设计我的第一个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个日志,这将如何工作(因为我可以有一个项目的许多来源和来源可以有多个日志)。我应该使用嵌入式还是参考模式时,如何处理大型文档并希望具有良好的阅读性能,哪种解决方案更好?谢谢