微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MongoDB 可过滤的动态属性的最佳模式?

如何解决MongoDB 可过滤的动态属性的最佳模式?

我有大量用户。每个用户都可以有角色。我希望能够根据用户拥有的角色过滤用户。以下两种方法之间是否存在性能差异?我可以想象第二种方法更快,更适合我的用例。我还假设第二个的索引会更小。有任何想法吗?谢谢!

数组方法

{
  name: "Paul",roles: [
    "system administrator","network administrator","solutions architect"
  ]
}

属性方法

{
  name: "Paul",roles: {
    system_administrator: true,network_administrator: true
    solutions_architect: true
  }
}

解决方法

第一种方法更好,因为您可以使用 roles$push 等数组运算符轻松添加/删除/更新 $pull 数组中的项目。

此外,索引第一种类型更容易,因为您只需索引 roles 字段。

对于下一个选项,如果您想专门为每种类型的角色建立索引,则必须创建大量索引。

所以我的投票将是第一个!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。