【发布时间】:2014-07-17 09:32:52
【问题描述】:
我已经在互联网上搜索了几个小时,以寻找在 Meteor.js 的智能集合中进行批量 upsert 有效的解决方案。
场景:
我正在使用 api 每 12 小时异步获取 200 个属性的更新信息。对于每个属性,我平均得到一个包含大约 300 个 JSON 对象的数组。 70% 的对象可能尚未更新。但对于其余 30% 的对象,我需要在数据库中更新它们。由于如果不将它们与数据库中的文档匹配就无法找到这 30% 的对象,因此我决定更新所有文档。
我的选择:
- 在对象数组上运行一个循环并更新数据库中的每个文档。
- 从集合中删除所有文档并批量插入新对象。
对于选项 1,运行循环并更新 60K 文档(将随着时间的推移而增加),需要很多时间。但目前似乎是唯一可行的选择。
对于选项 2,meteor.js 不允许在其智能集合中批量插入。即使这样,我们也必须遍历对象数组。
还有其他选择可以让我有效地实现这一目标吗?
【问题讨论】:
标签: mongodb meteor bulkinsert upsert smartcollection