将JSON数据从第三方“镜像”到流星集合的最佳方式

时间:2013-10-24 17:51:20

标签: json algorithm mongodb meteor mirroring

我们有一个基于Meteor的系统,它基本上轮询来自第三方REST API的数据,循环检索数据,将每条记录插入或更新到Meteor集合。

然后它击中了我:当从第三方的数据中删除条目时会发生什么?

  • 可以说插入/更新数据,然后遍历集合并找出哪个不在获取的数据中。没错,这是一种做法。

  • 另一种方法是清除集合,并从获取的数据中重写所有内容。

但是有数千个条目(目前有超过1500条记录,可能会爆炸),两者似乎都很慢并且消耗了CPU。

将数据从JS对象镜像到Meteor / Mongo集合的最佳过程是什么?这样一来,数据中已删除的项目也会被删除?

我认为代码在这里是无关紧要的,因为这可能适用于其他可以做类似专长的语言。

1 个答案:

答案 0 :(得分:1)

对于这种用法,请尝试使用更优化的内容。流星家伙正在努力使用流星作为一种复制品mongodb设置来获取/和设置数据。

目前有Smart-Collections使用mongodb的oplog来显着提升性能。它可以在一种适合所有场景的情况下工作,而无需针对细节进行优化。有benchmarks表明了这一点。

当Meteor 1.0问世时,我认为他们已经优化了自己的mongodb驱动程序。

我认为这可能有助于成千上万的参赛作品。如果您每秒都要更换数千个文档,那么您需要更接近mongodb。 Meteor采用了许多缓存技术,这些技术并不是最优的。我认为它每隔5秒轮询一次数据库以刷新其缓存。

智能收藏:http://meteorhacks.com/introducing-smart-collections.html

请知道是否有帮助我有兴趣知道它在这种情况下是否有用。

如果这不起作用,redis也可能有用,因为所有内容都存储在内存中。不确定你的用例是什么,但如果你不需要持久性,redis会比mongo挤出更多的性能。