首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mongodb哈希切分

Mongodb哈希切分
EN

Stack Overflow用户
提问于 2018-08-15 06:05:54
回答 1查看 118关注 0票数 1

如果我选择{a:1,b:1,c:1}作为我的切分键,而在我的查询中,我在散列切分策略中过滤{a:1},那么该查询是一个有针对性的操作,还是正在向集群中的每个碎片广播?

如果它是目标操作,mongodb是如何确定它的?因为{a:1}的散列与{a:1,b:1,c:1}的散列完全不同

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-15 11:50:45

最简单的是:是的。

从这个角度看:

让我们假设您获得了以下集合:

代码语言:javascript
复制
    //1
    {
      a: 1,
      b: 1,
      c: 1,
      d: 1

    },
    //2
    {
      a: 1,
      b: 1,
      c: 1,
      d: 2
    },
    //3
    {
      a: 1,
      b: 1,
      c: 2,
      d: 5
    }

根据您的索引,docs 1和2必须处于相同的批量(例如,在代码1上),而doc 3可以存储在不同的块上(例如,存储在碎片编号2上)。

现在,如果您搜索{a: 1},则应显示所有三个文档。这就意味着蒙戈必须把它分配给1号碎片和2号碎片。

至于你的第二个问题,在MongoDb中,你根本不能执行复合-哈希索引(即使你可以,比.是。哈希值可能是不同的)

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

https://stackoverflow.com/questions/51853692

复制
相关文章

相似问题

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