0

我正在尝试为集合中的所有文档插入一个新字段。我在“user_id”字段上有一个升序索引。

a) 为了从索引中受益,被更新/插入的字段是否应该被索引包含/转换?b)此外,鉴于我不执行任何范围操作,哈希索引在这种情况下是否更高效。

db.collA.update(  { user_id: 123 }
                , { $set : { newfield : "something" } }
                , { multi:true} ) 
4

1 回答 1

0

回答问题的 A 部分:不。插入或更新现有文档的索引属性实际上会导致索引的性能问题。如果您打算大批量执行此操作,您可能应该在操作后重新索引或修复。

B 部分:不。标准索引类型很好地涵盖了这个用例。如果“user_id”确实标识了一个文档,您可以考虑将其设为文档的“_id”,但是,这是一个有点高级的设计决策,并且对集合有影响(正面和负面)。

于 2013-03-25T23:25:34.733 回答