我有一个记录用户旅程的文档。
鼠标移动存储为此文档的子文档。我记录鼠标移动然后定期使用$ push附加到子文档数组。从我对Mongo的初步读数来看,这似乎是一种明智/有效的方法。现在我不太确定。
我最近遇到了一些与我的副本集有关的问题 - 当我的使用率达到高峰时,次要与主要版本不同步。看着我的oplog,我注意到有很多$ set命令,每个命令都包含用户鼠标移动的整个历史记录,看起来Mongo正在进行这种扩展,以便oplog记录可以是多余的。
相信它与JIRA https://jira.mongodb.org/browse/SERVER-9784
上的这个问题有关我是否正确解释了这个问题?如果是这样,似乎是一种通过网络传播变化的非常低效的方式。有没有办法解决这个问题?我最好将鼠标移动分离成单独的小文档吗?或者我可以通过在子文档数组上使用动态键来解决问题(因此避免使用$ push命令)。
答案 0 :(得分:0)
感谢大家的建议。我想我现在已经到底了。
看起来我的问题是一个错误。
在mongoDB中将$ each与$ push结合使用目前(v2.4.3)在复制方面效率极低。已更新相关的Jira问题以缩小标准。