mongodb中哪个操作更昂贵

时间:2019-09-10 07:12:44

标签: mongodb mongoose mongodb-query

我正在执行以下两项操作,您能告诉我哪个操作性能更高,为什么?考虑在_id字段上有一个索引,并且isdelete已经是真的

SomeModel.updateOne({ _id, isDelete: false },{ isDelete: true });

SomeModel.updateOne({ _id},{ isDelete: true });

1 个答案:

答案 0 :(得分:1)

在第一个查询的filter子句中,您隐式指定一个AND条件。因此,优化程序必须同时扫描“ _id”和“ isDelete”字段

在第二个查询中,优化器将仅扫描'_id'索引并执行更新操作。如果您的用例不需要同时验证两个字段,那么第二个查询将是不错的选择

相关问题