【发布时间】:2014-04-20 14:07:12
【问题描述】:
我尝试在客户端获取集合的光标。
给出以下代码:
服务器
// make sure that $near stuff works
Meteor.startup(function () {
Business._ensureIndex({'data.located':'2dsphere'});
});
// publish my collection
Meteor.publish('business', function(sq){
return Business.find(sq);
});
客户端和服务器
Business = new Meteor.Collection('business');
客户
var searchQuery = {};
searchQuery['data.located'] = {
$near : {
$geometry : {
type : 'Point',
coordinates : [50, 50]
},
$maxDistance : 50000
}
};
Meteor.subscribe('business', searchQuery);
Business.find(searchQuery);
问题是,游标有 0 个结果。当我在服务器端使用此搜索时,我得到了正确的结果计数!渲染我的模板时调用 Collection.find() 方法。
首先我认为它是异步的,因此我试图在超时回调中获取结果,但这并不能解决问题。
$near 搜索功能不能在客户端使用吗?如果不可能,怎么可能解决这个问题?
【问题讨论】:
-
不太可能。这似乎有点超出 minimongo 的深度。虽然流星 API 提供了相当多的便利,但实际上您最好实现此服务器端,然后访问发布的自定义方法以获得结果。
标签: mongodb collections meteor