Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Meteor发布/订阅延迟时间_Javascript_Mongodb_D3.js_Meteor - Fatal编程技术网

Javascript Meteor发布/订阅延迟时间

Javascript Meteor发布/订阅延迟时间,javascript,mongodb,d3.js,meteor,Javascript,Mongodb,D3.js,Meteor,我正在用x和y坐标在图像上绘制流星集合(敌人)。我可以成功地做到这一点。但是,我有一个发布功能,可以检查用户登录名是管理员还是普通用户。如果用户是管理员,则使用d3绘制所有点,但如果用户是任何其他用户,则仅绘制特定于用户位置的点 //Base Publish on User Type if (user === true) { //Admin Return all Points return Hostiles.find(); } else { //Any other user retu

我正在用x和y坐标在图像上绘制流星集合(敌人)。我可以成功地做到这一点。但是,我有一个发布功能,可以检查用户登录名是管理员还是普通用户。如果用户是管理员,则使用d3绘制所有点,但如果用户是任何其他用户,则仅绘制特定于用户位置的点

//Base Publish on User Type
if (user === true) {
  //Admin Return all Points
  return Hostiles.find();
} else {
  //Any other user returns location specific points 
  return Hostiles.find({latitude: {$lte: xLoc + 80, $gte: xLoc - 80}, longitude: {$lte: yLoc + 80, $gte: yLoc - 80}});
};
所有这些都很好。当我更改
敌对
位置的
xLoc
yLoc
时,就会出现问题。当管理员登录时,会随着集合中的更改而立即重新绘制。但是,当普通用户登录时,重新绘制会出现延迟。d3重绘通常需要3-10秒。在客户端上,我的订阅和d3都在
Meteor.autorun(function(){
)中绘制。也许没有任何方法可以解决这个问题?谢谢。

“MongoDB的oplog的当前实现只支持对标量字段的相等检查。所有其他操作(如lte/gte检查)仍然使用旧的10秒poll/diff方法。这将在1.0之前发生变化,因为Meteor团队在oplog实现中添加了更多操作符。”——@Cuberto

但是,在未发布的devel分支上有一个变通方法。请参阅。它允许使用Minimongo支持的任何选择器,但不包含$where或$near。只需使用
meteor--使用操作符发布oplog

感谢@Cuberto和@alanning提供了出色的解决方案。

我假设
xLoc
yLoc
是从
会话
中检索的,因为如果不是,那么只有在其他一些反应性数据源发生更改时才会执行
自动运行
(或者,如果光标中的数据发生变化,每10秒一次,这可能就是您看到的情况)。请阅读Meteor博客上的这篇文章:-MongoDB的oplog的当前实现只支持对标量字段进行相等检查。所有其他操作(如lte/gte检查)仍然使用旧的10秒轮询/差分方法。这在1.0之前会有所改变,因为Meteor团队在oplog实现中添加了更多操作符。@从音乐上说,它们是通过会话接收的。@Cuberto这很有意义,谢谢。所以在1.0之前,我必须处理10秒轮询/差分方法吗?@alanning啊,不知道这一点。我想知道这是一个针对
oplog和操作员的组合版本
template-engine-preview-10.1