Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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中对_id上的碎片密钥进行了哈希处理,然后呢?_Mongodb_Sharding - Fatal编程技术网

在MongoDB中对_id上的碎片密钥进行了哈希处理,然后呢?

在MongoDB中对_id上的碎片密钥进行了哈希处理,然后呢?,mongodb,sharding,Mongodb,Sharding,如果我用ensureIndex({u id:“hashed”})创建了一个散列索引,Mongo会知道在\u id字段上进行任何查询,并根据散列索引运行它们吗?或者我需要更新所有使用_id作为哈希索引的\u id\u的查询吗?创建哈希索引时,Mongodb不会修改\u id字段。它将做正确的事情,并适当地查询\u id。散列将仅用于查询和平衡碎片。当您创建id:“散列”索引时,它是常规的\u id:1索引之外的索引。是否有方法将现有的\u id:1索引替换为“\u id:“散列”?我已经创建了一个

如果我用
ensureIndex({u id:“hashed”})
创建了一个散列索引,Mongo会知道在
\u id
字段上进行任何查询,并根据散列索引运行它们吗?或者我需要更新所有使用_id作为哈希索引的
\u id\u的查询吗?

创建哈希索引时,Mongodb不会修改
\u id
字段。它将做正确的事情,并适当地查询
\u id
。散列将仅用于查询和平衡碎片。

当您创建id:“散列”索引时,它是常规的\u id:1索引之外的索引。是否有方法将现有的\u id:1索引替换为“\u id:“散列”?我已经创建了一个散列索引,但是默认的
id
索引仍然存在,这会占用磁盘空间和RAM。