假设您有一个集合,其中包含一个名为“primary_key”、{“primary_key”:“1234”、“name”:“jimmy”、“lastname”:“page”}的字段
我在“primary_key”上有一个索引。
这个集合有数百万行,我想看看更改其中一条记录的 primary_key 是多么昂贵。它会触发整个表的重新索引吗?还是只是重新索引更改的记录?在任何一种情况下都那么昂贵吗?
更新 mongodb 中的索引字段会导致更新使用它的索引(或索引,如果你有多个)。它不会“重新索引”。不应该那么昂贵 - 实际上您将删除旧条目并插入一个新条目。
该文档有大量关于 mongodb 索引的详细信息:
http://docs.mongodb.org/master/MongoDB-indexes-guide.pdf
顺便说一句,请记住,mongodb 使用一个特殊字段 _id 作为主键
_id 每个 MongoDB 文档中都需要的字段。_id 字段必须具有唯一值。您可以将 _id 字段视为文档的主键。如果您创建一个没有 _id 字段的新文档,MongoDB 会自动创建该字段并分配一个唯一的 BSON ObjectId。
您无法更新 _id 字段。