如何定期从外部JSON提要更新流星集合?

时间:2014-07-10 11:15:10

标签: meteor

我正在构建一个应用程序,该应用程序从我从其他域提供的几个外部JSON源中提取数据。

我想在服务器上构建集合,以便我可以使用$ near位置查询,但我需要定期检查这些JSON源以查看它们是否已更新,以及是否有我&#39 ; ll需要相应地更新我的收藏。

是否有'标准'这样做的方式? (检查我在服务器上的内容是最新版本吗?)

编辑...更多信息!

我的JSON供稿都有一个唯一的标识符(称为url_title,但在所有供稿中绝对唯一),如果我可以弄清楚如何格式化查询,我可以在upsert中使用它。这会与setInterval结合使用吗?我的一个Feed看起来像这样:

[{"offer_title":"NEW TEST OFFER!!!",
   "url_title":"new-test-offer_144",
   "offer_desc":"description here",
   "offer_start":"2014-07-10",
   "offer_end":"2014-07-12",
   "offer_category":"food-drink",
   "offer_advertiser":"Testing Corp",
   "location": {
        "type": "Point",
        "coordinates": [-5.53596,50.12121]
    }
} ...

我正在提取数据(目前是客户端),如下所示:

Offers = new Meteor.Collection( null );

HTTP.get("http://myappurl.com/offers.json", function(err,result) {
    if (result.statusCode === 200) {
        respJson = JSON.parse(result.content);
        for (var i = 0; i < respJson.length; i++) {
          console.log('inserting '+respJson[i]['offer_advertiser']);
          Offers.insert(respJson[i]);
        }
        //Commented out because I need to move this server side
        //Offers._ensureIndex({location: "2dsphere"});
      }
      else {
        console.log(result.statusCode);
      }
});

如果我将它包装在Meteor.setInterval中并给它一个相对较长的间隔时间,那会起作用吗? insert / upsert格式是什么样的?

1 个答案:

答案 0 :(得分:0)

快速解决方案:

使用mongo集合镜像外部供稿。只需创建一个集合并定期从外部源更新它。正常编写您的查询和出版物。