现象
这与MongoDB内部执行顺序的有关。
先说下我们的场景。数据库中有大量的数据需要 重新 更新。
我们使用的是java驱动,mongotemplate.save如果文档存在,则只会更新文档。
因为数据单个文档 的结构很复杂, 我们担心使用save不能正确的更新文档所以使用了关系型数据库上的操作逻辑。
就是在逻辑层,java操作中 执行先删除原文档再保存新文档(id)保持一致。
如果保存的文档 大小很大的时候是不会有问题的。
但是保存的文档太小时,大批量操作中 会出现 保存操作比 删除操作执行得快的情况。
<