[英]Complex query using 2 separate collections in Mongodb / Nodejs
[英]MongoDB Nested vs Separate Collections
我有一个与数据库相关的一般问题。 它更具体地说明了如何处理关于 MongoDB 的集合。
假设我有一个 Parent 集合。 然后我有一些除了父级之外的子级集合。 它们每个都有单独的模式。 目前,它们作为单独的集合存在于数据库中。
我通过将 parentId 属性添加到每个子文档来处理链接。
IE
Some_Child = {
"parentId" : "some_id",
rest_of_schema
}
这似乎工作得很好。 但是,我注意到我现在每次需要 Child 数据时都必须处理两个集合。 这会导致更多的代码。 即多次订阅,每次我只想对 Child 做一些事情时,都会调用 DB 调用。
关于以这种方式构建数据与在每个父文档上仅拥有一组 Childs 相比,您有什么想法?
IE
Some_Parent = {
"Childs" : [
{child1},
{child2},
{childN}
],
Rest_Of_Schema
}
我对此的担忧是它是面向未来的。 假设如果 Child 需要更多的数据和功能......那么父文档最终可能会变得非常大和混乱。 此外,一般来说,抽象出这两个集合可能会更清晰。
通常,(在 RDMS 中),我什至不会考虑使用选项 #2。 所以我只是想知道这是否是文档存储、MongoDB(以及一般的非关系 DBMS)的可接受模式。
任何见解?
只要保证每个父级的子级数量不会很高,您绝对可以使用选项 #2,因为您不想冒险达到 16MB 的文档大小限制。
在 Mongo 中,一对多关系可以分为三种不同的实现(各有利弊):
使用哪一个取决于许多因素,例如最可能的关系导航方式是什么,是否需要独立于父文档查找子文档等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.