【问题标题】:MongoDB best schema for filterable, dynamic attributes?MongoDB 可过滤动态属性的最佳模式?
【发布时间】:2021-01-28 07:41:12
【问题描述】:

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

数组方法

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

属性方法

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

【问题讨论】:

    标签: mongodb indexing database-design nosql schema


    【解决方案1】:

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

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

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

    所以我会先投票!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-01
      • 1970-01-01
      • 2015-04-26
      • 2012-04-16
      相关资源
      最近更新 更多