Meteor 流星:发现的交点

Meteor 流星:发现的交点,meteor,publish,intersection,Meteor,Publish,Intersection,我的收藏如下: Schema.Place=new SimpleSchema({ 类型:{ 类型:字符串, autoValue:function(){return'Point';} }, 坐标:{ 类型:[编号], 是的, }, }); Schema.Direction=newsimpleschema({ _身份证:{ 类型:字符串, 可选:true, }, 发件人:{ 类型:Schema.Place, }, 致:{ 类型:Schema.Place, } }); 然后我想根据起点和终点查询相同的

我的收藏如下:

Schema.Place=new SimpleSchema({
类型:{
类型:字符串,
autoValue:function(){return'Point';}
},
坐标:{
类型:[编号],
是的,
},
});
Schema.Direction=newsimpleschema({
_身份证:{
类型:字符串,
可选:true,
},
发件人:{
类型:Schema.Place,
},
致:{
类型:Schema.Place,
}
});
然后我想根据起点和终点查询相同的方向。第一个问题是,我无法在同一个查询中查询两个地理索引,因此我执行以下操作:

Meteor.publish('Directions',函数(direction){ var id=Ride.find({ 主动:对, 发件人:{ $near:{ $geometry:{ 键入:“点”, 坐标:方向.from.coordinates, }, $maxDistance:5000, } } }).map(函数(项){return item.\u id}); 回程({ _id:{$in:ids}, 致:{ $near:{ $geometry:{ 键入:“点”, 坐标:方向到坐标, }, $maxDistance:5000, } } }); }); 问题是发布由于双重查询过滤而失去了反应能力

我对如何做这项工作有一些想法,但对我来说似乎很奇怪,没有更好的方法:

  • 发布第一个查询并在客户端上执行筛选(但不确定 $near受客户端支持)
  • 在发布功能中使用observeChanges
  • 在发布函数中使用meteor方法(我在以前的讨论中见过它,但不确定它是否可能或与我的问题相关)
您可以使用
publish composite
包进行被动连接
https://atmospherejs.com/reywood/publish-composite
我已经在使用它了,但它是用于父/子关系的,不是吗?我怎样才能将它用于同一个集合?是的,它是用于父/子关系的。但是您可以在子级中查询相同的集合。您可以使用
publish composite
package进行被动联接
https://atmospherejs.com/reywood/publish-composite
我已经在使用它了,但它是用于父/子关系的,不是吗?我怎样才能将它用于同一个集合?是的,它是用于父/子关系的。但是您可以在子对象中查询相同的集合。