首页 > 解决方案 > mongodb 使用 $nin 分片键进行分片

问题描述

我是分片新手,我想问您是否可以使用将与 $nin 查询一起使用的分片键对集合进行分片。

例如,假设我有收藏:

{
      _id: ObjectId(...),
      firstName: "John",
      lastName: "Chalaris",
      role: "Manager",
      ....
}

如果我的分片键是角色,是否可以有效地运行查询:

db.users.find(role: {$nin: ["Manager, Support"]})

标签: databasemongodbsharding

解决方案


Shard Key在集群中的数据分布中扮演着重要的角色。同样重要的是,您的查询将分片键指定为过滤条件的一部分以提高效率。

与它们关联的分片键值和块确定查询必须访问多少个分片。因此,为了提高性能,查询应该包括分片键作为目标操作(并避免分散-收集或广播)操作的部分过滤条件。mongos确定要定位的分片。

另请参阅:分片集群读取操作


推荐阅读