我开始使用MongoDB,并且我有一个集合,其中的文档可能有子文档,也可能有子文档……一棵树。
{
a:[
{
a:[
{
},
{
},
]
},
{
}
],
...
},
{
a:[
{
a:[
{
},
{
},
]
},
{
}
],
...
}
我应该显式地这样做吗?是应该将每个子文档存储在另一个集合中并将I存储在一个数组中,还是应该使用传统的关系型SQL DB来实现这一点?
谢谢您:)
发布于 2015-11-07 03:06:03
MongoDB是一个面向文档的数据库。通常在关系数据库中被分成多个表(即“规范化”)的数据通常一起存储在文档数据库中,有时存储在单个集合中。
MongoDB是“无模式的”,这意味着它没有固定的模式,因此它的文档结构非常灵活。您可以在文档中包含子文档甚至数组,如您在树结构中所示。这使得设计NoSQL模式非常具有挑战性,因为您有很多选择可供选择。实际上,最佳模式取决于您的应用程序和对数据库执行的查询。在SQL数据库中,数据是基于数据本身进行规范化的,而不考虑查询。
请记住,MongoDB不支持连接,所以您“拆分”到多个集合中的任何东西都需要手动连接。继续利用MongoDB的灵活模式,并尝试不同的选项。具有多层嵌套的文档将使查询更加复杂,因此通常需要权衡取舍。
https://stackoverflow.com/questions/33573438
复制相似问题