【问题标题】:Document field must regex match one item in array文档字段必须正则表达式匹配数组中的一项
【发布时间】:2020-09-15 15:32:17
【问题描述】:

我有一个使用 CouchDB 查询语法的 cloudantDB 实例。在高层次上,在我的数据库中,我有包含 id 值的文档

{
  "id": "123-01"
},
{
  "id": "123-02"
},
{
  "id": "456-01"
},
{
  "id": "789-01"
}

我试图实现的是查询所有id 字段以123456 开头的文档,但不是789。目前,我通过创建一个大型选择器来实现这一点,该选择器使用$or 运算符来匹配任何$regex 条件,例如:

{
  selector: {
    "$or": [{
      "id": {
        "$regex": "123"
      }
    },
      "id": {
        "$regex": "456"
      }
    ]

  }
}

有些事情告诉我,这不是实现此结果的正确方法。有没有人知道一种更有效的方式来查询数据库以获取此类文档?

【问题讨论】:

    标签: database couchdb cloudant


    【解决方案1】:

    如果您只需要获取 ID 以特定前缀开头的文档,请考虑使用 _all_docsstartkey。这应该是一个更优雅、更高效的解决方案(而不是使用正则表达式)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-12
      • 1970-01-01
      • 2022-12-03
      • 2022-01-15
      相关资源
      最近更新 更多