蒙戈地理空间索引和流星(Mongo geospatial index and Meteor)

2019-07-30 07:22发布

我想知道是否有可能使用与流星架构的MongoDB的地理空间索引。

Minimongo没有实现地理空间索引,但是这是否意味着我们不能使用此功能蒙哥在服务器端?

例如,与待办事项应用程序,如果我们在TODO上使用的位置,才有可能做到:

// Publish complete set of lists to all clients.
Meteor.publish('todos', function (lon,lat) {
   return Todos.find({loc: {$near:[lon,lat]}}).limit(2);
});

而在客户端:

Meteor.subscribe('todos', lon, lat );

Answer 1:

是的,你可以在流星使用MongoDB的地理空间索引你可以从你的流星应用程序中也创建索引。

-地理空间搜索

我使用的是$within操作的下方,而不是在$near操作上面提到的,但是这仍然适用:

Meteor.publish('places', function(box) {
    return Places.find({ loc : { $within : { $box : box }}});
});

提醒 :这些类型的地理查询的只是服务器 (目前)上可用。

- (在MongoDB的外壳,而不是) 创建地理空间指数从内流星

Places._ensureIndex({ loc : "2d" });

例如,你可以使用上面在bootstrap.js

此外,你可能会想要把你ensureIndexMeteor.startup ,或者当你插入一些初始数据。


警告 :如前所述这里 ,调用上面的方法ensureIndex是周围的正式方式来调用它想要的工作,所以请期待,这可能会改变。

更新 :现在反映流星0.5.0更改,请参阅@Dror下面的评论。



Answer 2:

是的,我觉得还可以。

在服务器端,流星代表发现/更新/ ..到节点蒙戈本地通话。 你可以看看在包/蒙戈 - livedata / mongo_driver.js的代码。 而据我所知,节点蒙戈原生支持地理空间索引。



文章来源: Mongo geospatial index and Meteor