Ter*_*tor 5 mongodb mongodb-query
我正在使用 mongo 3.0 版 db 和 java 驱动程序。我有 100,000 多个条目的集合。每天将有大约 500 次更新和大约 500 次插入,这应该是批量完成的。我将获得带有旧字段的更新文档以及一些我必须存储的新文档。我不知道哪些字段也是为每个字段新添加的,我正在维护一个汇总统计数据。由于我不知道有哪些更改,我将不得不获取已存在的记录以查看更新记录和新记录之间的差异以适当设置汇总统计数据。所以我想要有关如何有效完成此操作的输入。
我应该删除现有记录并再次插入还是应该更新 500 条记录。如果它有潜在优势,我是否应该考虑做 1000 个 upsers。
示例用例初始记录包含:f=[185, 75, 186]。对于同一条记录,我将收到更新请求为 f=[185, 75, 186, 1, 2, 3] 。此外,上面提到的汇总统计信息将 id 的计数存储在 f 中。因此,1、2、3 的计数将增加,而 185、75、186 的计数将保持不变。
更新插入用于添加不存在的文档。因此,如果您需要新文档,那么可以设置{upsert: true}.
为了更新您的统计数据,我认为最简单的方法是重做统计数据(如果您正在这样做)mongo(例如使用聚合框架)。如果你正确索引你的文档应该没问题。我假设您的统计更新是离线操作。
如果您没有进行统计,那么mongo您可以添加另一个collection位置,您可以在其中保存更新以及旧字段(当然您也会更新当前的集合),这样您就会知道哪些文档在一天中发生了更改。最后,collection一旦提取了所需的信息,您就可以删除此临时/日志。
| 归档时间: |
|
| 查看次数: |
5272 次 |
| 最近记录: |