这是非常尖端的,因为0.7.2今天刚刚发布,但我想我会问,以防有人可以解释一下。
我没有向MDG报告这个问题,因为我无法在我的开发环境中重现这一点,因此我没有给出它们的配方。
我在我的生产环境中设置了oplog尾部,它与我的开发环境完全一致,除了它在远程服务器上。
服务器运行Ubuntu +节点0.10.26,我正在运行应用程序的捆绑版本。 Mongo报告其replSet正在按顺序工作。
问题是服务器代码中的某些集合更新无法进入客户端。这是代码遵循的工作流程:
如果我在没有oplog拖尾的情况下运行应用程序(通过不设置MONGO_OPLOG_URL),则上述工作流程每次都有效。但是,如果我使用oplog尾部运行它,客户端不会回显任何更改,如果我直接从浏览器上的JS控制台查询集合,我看不到集合的更新版本。
为了增加这个谜团,如果我进入mongo控制台并手动更新文档,我会立即看到客户端上的更改。或者,如果我在Meteor.call()之后刷新浏览器,然后从js控制台手动查询集合,那么就会发生变化,正如我所期望的那样。
如前所述,如果我在我的开发环境中使用oplog拖尾运行应用程序(使用事实包验证),它都按预期工作,我无法重现该问题。这里唯一的区别是客户端和服务器之间的延迟? (我的开发环境在我的局域网中)。
如果有人碰到类似的东西,我们可以隔离问题并使其重现......