我试图在SQL查询性能上搜索问题,例如this one和this one,但不是MongoDB。
我的用例很简单,使用php-mongo驱动程序,将文档从原始集合移动到存档集合。
我担心这两个集合中的重复文档会有相同的“_id”,所以如果insert()会出现“重复键错误”。以下是在插入归档集合时处理重复的两种方法:
1。使用update()方法:
doc = db.original.findOne()
db.archive.update(doc['_id'], doc, { upsert: true })
2。使用insert()方法,但在我的代码中我需要一个 try-catch 块来处理Mongo DB“重复键错误”。
显然,使用update()可以避免“重复键错误”,我不必担心重复。根据我的理解,update()和insert()都会引用'_id'索引,所以速度可能相似。我的问题是,是update()性能效率比insert()差吗?假设我有GB甚至TB档案集。
非常感谢。