0
如果我有一个集合:游客,我想嵌入到它访问数组,那么它会是这个样子:MongoDB的嵌入结构和搜索
Visitor1 ->Visit 1 ->Visit 2 Visitor2 ->Visit 1 ->Visit 2
- 这是一个很好的结构?
- 当我将有数百万的文档时,我将不得不先查找访问者然后添加访问,这种结构是否高效?
- 如何显示所有访问者的所有访问?
如果我有一个集合:游客,我想嵌入到它访问数组,那么它会是这个样子:MongoDB的嵌入结构和搜索
Visitor1 ->Visit 1 ->Visit 2 Visitor2 ->Visit 1 ->Visit 2
它可以是有效的,取决于你必须做更多的经常。结构本身就很好。当您查询访问者时,您总是可以为单个访问者提供“免费”的所有访问,因此您可以轻松访问单个访问者的所有访问。这也意味着你不需要访问集合来清理你的模式。
下面是示例实现你所需要的操作:
添加访问:
db.visitors.update({_id:<visitorId>}, {$push:{visits:<newVisit>}})
删除,请访问:
db.visitors.update({_id:<visitorId>}, {$pull:{visits:{visitId:<visitId>}})
如果您的意思是显示所有访客的所有访问,目前没有直接的方式。您可以使用独特的操作和一些应用程序逻辑来打开各个阵列或使用m/r。在2.2中。会有一个聚合框架可以做到这一点。
有一些事情要考虑,虽然:
希望有帮助。