文档字段必须正则表达式匹配数组中的一项
Document field must regex match one item in array
我有一个使用 CouchDB 查询语法的 cloudantDB 实例。在高层次上,在我的数据库中,我有包含 id 值的文档
{
"id": "123-01"
},
{
"id": "123-02"
},
{
"id": "456-01"
},
{
"id": "789-01"
}
我想要实现的是查询 id
字段以 123
和 456
但不是 789
开头的所有文档。目前,我通过创建一个大型选择器实现了这一点,该选择器使用 $or
运算符来匹配任何 $regex
条件,例如:
{
selector: {
"$or": [{
"id": {
"$regex": "123"
}
},
"id": {
"$regex": "456"
}
]
}
}
有些事情告诉我,这不是实现此结果的正确方法。可能有人知道一种更有效的方法来查询数据库中的此类文档吗?
如果您只需要获取 ID 以特定前缀开头的文档,请考虑使用 _all_docs 和 startkey
。这应该是一个更优雅、更高效的解决方案(而不是使用正则表达式)。
我有一个使用 CouchDB 查询语法的 cloudantDB 实例。在高层次上,在我的数据库中,我有包含 id 值的文档
{
"id": "123-01"
},
{
"id": "123-02"
},
{
"id": "456-01"
},
{
"id": "789-01"
}
我想要实现的是查询 id
字段以 123
和 456
但不是 789
开头的所有文档。目前,我通过创建一个大型选择器实现了这一点,该选择器使用 $or
运算符来匹配任何 $regex
条件,例如:
{
selector: {
"$or": [{
"id": {
"$regex": "123"
}
},
"id": {
"$regex": "456"
}
]
}
}
有些事情告诉我,这不是实现此结果的正确方法。可能有人知道一种更有效的方法来查询数据库中的此类文档吗?
如果您只需要获取 ID 以特定前缀开头的文档,请考虑使用 _all_docs 和 startkey
。这应该是一个更优雅、更高效的解决方案(而不是使用正则表达式)。