我正在构建一个应用程序,该应用程序从我从其他域提供的几个外部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格式是什么样的?
答案 0 :(得分:0)
快速解决方案:
使用mongo集合镜像外部供稿。只需创建一个集合并定期从外部源更新它。正常编写您的查询和出版物。