Mongodb 支持许多有用的数组操作,例如 $push 和 $pop,但我似乎无法找到有关其算法复杂性的任何信息,也无法找到它们如何实现来计算其运行时复杂性。任何帮助将不胜感激。
我想当谈到Mongo更新时,相关的案例只有三种:
1) 就地原子更新。例如,只增加一个整数。这非常快。
2) 就地替换。整个文档必须重写,但它仍然适合当前空间(它缩小了或者有足够的填充)。
3)文档迁移。您必须将文档写入新位置。
除此之外,还有更新受影响索引的成本(如果必须移动整个索引,则全部)。
您在文档内部实际执行的操作(推送数组、添加字段)不应对操作的总成本产生任何重大影响,这似乎主要线性取决于文档的大小(网络和磁盘传输成本) )。