0

我有一个文档记录了我网站内的用户旅程。

鼠标移动存储为该文档的子文档。我记录鼠标移动,然后定期使用 $push 附加到子文档数组。从我对 Mongo 的初步阅读来看,这似乎是一种明智/有效的方法。现在我不太确定。

我最近在使用副本集时遇到了一些问题 - 当我的使用量达到峰值时,辅助节点与主节点不同步。查看我的 oplog,我注意到有很多 $set 命令,每个命令都包含用户鼠标移动的整个历史记录,而且似乎 Mongo 正在做这种扩展,以便 oplog 记录可以是不可靠的。

相信它与 JIRA 上的这个问题有关https://jira.mongodb.org/browse/SERVER-9784

我是否正确解释了这个问题?如果是这样,通过网络传播更改似乎是一种非常低效的方式。有没有办法解决这个问题?将鼠标移动分成单独的小文档会更好吗?或者我可以通过在子文档数组上使用动态键来解决这个问题(因此避免使用 $push 命令)。

4

1 回答 1

0

感谢大家的建议。我想我现在已经深究了。

看起来我的问题是一个错误。

在 mongoDB 中将 $each 与 $push 结合使用目前(v2.4.3)在复制方面效率极低。更新了相关的 Jira 问题以缩小标准。

https://jira.mongodb.org/browse/SERVER-9784

于 2013-11-19T08:58:24.803 回答