Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果更改索引中使用的字段,mongodb是否会重新索引?_Mongodb_Indexing_Reindex - Fatal编程技术网

如果更改索引中使用的字段,mongodb是否会重新索引?

如果更改索引中使用的字段,mongodb是否会重新索引?,mongodb,indexing,reindex,Mongodb,Indexing,Reindex,假设您有一个名为“primary_key”的集合, {“主键”:“1234”,“姓名”:“吉米”,“姓氏”:“第页”} 我有一个关于“主键”的索引 这个集合有数百万行,我想看看更改其中一个记录的主键有多昂贵。它是否会触发整个表的重新索引?还是只是对更改后的记录重新编制索引?在这两种情况下,这样做是不是很昂贵 更新mongodb中的索引字段会导致使用它的索引(如果有多个索引,则会更新多个索引)的更新。它不“重新索引”。不应该那么昂贵-实际上,您将删除旧条目并插入新条目 本文档对mongodb索引有

假设您有一个名为“primary_key”的集合, {“主键”:“1234”,“姓名”:“吉米”,“姓氏”:“第页”}

我有一个关于“主键”的索引


这个集合有数百万行,我想看看更改其中一个记录的主键有多昂贵。它是否会触发整个表的重新索引?还是只是对更改后的记录重新编制索引?在这两种情况下,这样做是不是很昂贵

更新mongodb中的索引字段会导致使用它的索引(如果有多个索引,则会更新多个索引)的更新。它不“重新索引”。不应该那么昂贵-实际上,您将删除旧条目并插入新条目

本文档对mongodb索引有相当多的详细信息:

顺便说一句,记住有一个特殊的字段,_id,mongodb使用它作为主键

_身份证 每个MongoDB文档中都需要一个字段。_id字段必须具有唯一的值。您可以将_id字段视为文档的 主键。如果创建的新文档没有_id字段, MongoDB自动创建字段并分配唯一的BSON 目标


您无法更新_id字段。

谢谢您的回答。链接也很好,我知道整个文档都与索引相关,但如果您能指出哪个部分与该问题更相关,那就太好了。我是这个答案的后来者,上述链接现在从2020年起已断开,相关文档的链接可以通过: