我正在阅读MongoDB的data modeling文档,并对命名空间集合有疑问。
他们提供的示例使用日志集合
{ log: "dev", ts: ..., info: ... }
{ log: "debug", ts: ..., info: ...}
他们说
如果文档总数不足 ,您可以按类型将文档分组。对于日志,请考虑维护不同的日志集合,例如 logs.dev 和 logs.debug 。 logs.dev集合仅包含与开发环境相关的文档。
我想知道他们对低文档总数的意义,但后来我找到了 MongoDB限制的文档,这使得它有意义。
所以我的问题是,如果命名空间集合存在这些限制,那么使用它们而不仅仅使用全新的集合有什么好处,比如 logs_dev 和 logs_debug ?
谢谢。
答案 0 :(得分:4)
包含.
的集合名称没什么特别之处;名为logs_dev
和logs_debug
的集合与名为logs.dev
和logs.debug
的集合的行为相同。它们都是完全独立的系列。
我认为所引用的文档是尝试传达的是一个用例,例如日志记录,您可以将所有相关文档放在一个集合中(文档由类似字段区分)示例中为type
,或将它们放在单独的集合中。如果你把它们放在不同的集合中,可以考虑使用命名空间式命名来帮助清楚地表明集合是松散相关的。