我尝试在客户端获取集合的游标。

给出以下代码:

服务器

// 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搜索功能可能无法在客户端使用吗? 如果不可能,如何解决呢?

===============>>#1 票数:1

根据更改日志 ,在流星v0.7.1.1的minimongo中使用$near进行了排序。

似乎您在subscribe后立即进行find 如果是这种情况,在执行find之前不会将数据传输到客户端。 假设您的查询是正确的,如果您只是等待数据准备就绪,它可能会起作用。 尝试这样的事情:

Meteor.subscribe('business', searchQuery, function() {
  console.log(Business.findOne(searchQuery));
});

请注意,您的代码显示的订阅中没有要求的名称( 'business' )-我假设这是一个错字。

  ask by TJR translate from so

未解决问题?本站智能推荐:

2回复

使用Meteor时,我无法从客户端控制台访问该集合?

这是最奇怪的事情,由于某些原因即使启用了自动发布,我也无法从浏览器控制台访问该集合。 下面的代码是一个简单的列表程序,您可以在其中输入项目到集合中,它将在屏幕上显示为列表。 在控制台中,当我尝试通过键入People.find()或People.find()。fetch()来访问数据库时,它会
1回复

流星客户端排序集合

我有一个DrawingHistory集合,它存储用于重绘画布数据的数据,但我似乎找不到按时间属性对信息进行排序的方法。 这是我目前的功能 有时候订单搞砸了,我在网上查看排序,人们说要做的事情是DrawingHistory.find().sort( { time: -1 } )但是fin
2回复

当集合巨大时,meteorjs订阅使用

我不知道使用meteorjs处理巨大的mongo数据库的最佳方法。 在我的示例中,我有一个数据库集合,其中包含地理位置的地址。 (整个代码片段只是示例) 例: 现在我有一个表单,用户可以在其中输入地址以获取地理数据。 很简单。 但问题是,带有地理数据的集合中有数百万个文
2回复

流星如何使订阅与客户端集合匹配?

在流星服务器端,这看起来不错,它将服务器端集合映射到发布 客户端上的以下内容也是可以理解的,它按名称将订阅映射为发布。 但是我找不到任何解释订阅和客户端集合如何相互映射的教程或文档。 没有代码将任务(订阅)映射到任务(客户端集合)。 流星可能会假设客户端集合使用与服务器端相同
2回复

无法将MongoDB集合从服务器发布到客户端Meteor

我想将服务器端集合发布到客户端。 在服务器端 我希望仅由特定模板访问此集合。 因此, 在客户端 现在,我可以从客户端模板传递数据,甚至可以写入服务端集合。 但这似乎无法进行订阅,因此,我无法在模板中显示集合数据。 (该集合未显示在气象卫星上) 我该如何解决
3回复

客户端和服务器流星之间的共享集合

流星初学者。 只是学习一切如何运作所以请耐心等待。 一切都在一个文件中工作正常,但在安装iron:router以获得多页应用程序后,我意识到最好有单独的客户端和服务器文件。 不幸的是,现在我无法在服务器和客户端之间同步集合。 我已经阅读了大量的教程,但没有任何工作。 在我的se
2回复

MeteorJS:更新数组内部的对象

我试图将数组中第二个对象上的comment_delete ='false'更新为'true' 。 请帮助 .... "_id" : "jLkRdxocZzheefWF3", "comments" : [ { "comment_id" : "\624334", "comment
1回复

MeteorJS:很难理解集合

我是MeteorJS的新手,并且正在构建一个应用程序,该程序基于XML api服务在Google Map上绘制点(使用它们的API),单击这些点之一时,将显示详细信息。 非常简单。 我正在苦苦挣扎的是,我需要存储API结果,以便每次加载页面时都不会ping通API,并且由于Meteor使
1回复

无法在CollectionFS中为MeteorJS应用程序操作Images.find()

我的应用程序有点像TelescopeJS,但更简单。 我正在尝试回显在添加后的表单中添加的特定图像,该表单输入了帖子,图片,类别和描述的名称。 它有2个集合,一个用于Articles,另一个用于Images(不是mongo集合,它是FS集合。)Articles集合用于存储名称,描述和类别名称
1回复

在meteorjs应用程序中从我的收藏夹中删除重复项&&呈现每个玩家的最新分数

我正在研究在后端使用MongoDB的Meteorjs应用程序。 在我的收藏集中,有很多重复数据,例如(仅作为示例) 我想将所有这些集合复制到一个数组上,删除重复的名称,并仅保存每个玩家的名称和最近得分,例如这样 为此,我尝试使用更新方法$ puch,但不起作用; 你知道如