首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在MongoDb ()中使用$regex对sh.splitAt进行切分

在MongoDb ()中使用$regex对sh.splitAt进行切分
EN

Stack Overflow用户
提问于 2017-12-19 19:26:44
回答 2查看 160关注 0票数 0

sh.splitAt()的文档没有对查询设置任何限制,那么为什么这会导致错误:

代码语言:javascript
运行
复制
db.cases.createIndex({"code":1},{unique:true})
sh.shardCollection("casemanagement.cases",{"code":1})
sh.splitAt("casemanagement.cases",{code:{$regex:/...........[4-6]./}})

错误:

代码语言:javascript
运行
复制
new split key {code:{$regex:/...........[4-6]./} is not valid for shard key pattern code {1.0}

我找到的相关3.4个来源是cluster_split_cmd.cpp第228行,shard_key_pattern_test.cpp。为什么ShardKeyPattern关心价值方面,因为“代码”是切分键?

EN

回答 2

Stack Overflow用户

发布于 2017-12-20 00:22:21

MongoDB切分是基于块划分的。每个块都有其定义的最大键和最小键范围。因此,只接受一系列值而不是正则表达式模式并不令人惊讶。我同意应该在sh.splitAt()中记录这一点。

票数 0
EN

Stack Overflow用户

发布于 2018-01-13 03:12:09

我现在了解了sh.splitAt()真正做了什么,以及如何最好地记录它:

sh.splitAt(命名空间,查询)将碎片拆分为一个 --该查询标识当前集合中可能存在或可能不存在的一个和唯一一个文档,将超出的所有文档移到新块。

我正在寻找的特性可以描述为以下不存在的特性:

sh.cull(命名空间、筛选器)使用筛选器查询划分碎片,其中查询选择的文档被移动到新块中,将查询未选择的文档留在当前块中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47893912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档