如果我有一个集合:访问者和我想在其中嵌入一系列访问,那么它将看起来像这样:
Visitor1 ->Visit 1 ->Visit 2 Visitor2 ->Visit 1 ->Visit 2
答案 0 :(得分:2)
取决于你必须经常做什么,它可以是高效的。结构本身和本身都很好。当您查询访问者时,您始终可以获得“免费”的单个访问者的所有访问权限,这样您就能轻松获得单个访问者的所有访问权限。这也意味着您不需要访问集合来清理您的架构。
以下是您需要的操作的示例实现:
添加访问次数
db.visitors.update({_id:<visitorId>}, {$push:{visits:<newVisit>}})
删除访问次数
db.visitors.update({_id:<visitorId>}, {$pull:{visits:{visitId:<visitId>}})
如果您打算显示所有访问者的所有访问量,那么目前没有直接的方式。您可以使用不同的操作和一些应用程序逻辑来打开单个数组或使用m / r。在2.2。会有一个聚合框架可以做到这一点。
但有些事情需要考虑:
希望有所帮助。