Cloudant查询&;CouchDB Mango:如何设置$regex标志?

Cloudant查询&;CouchDB Mango:如何设置$regex标志?,couchdb,cloudant,Couchdb,Cloudant,是否可以使用Cloudant查询/CouchDB 2.0查找设置$regex标志 具体来说,我想要一个不区分大小写的搜索和全局搜索也会很有用 在JavaScript中,我将执行以下操作: db.find({ selector: { _id: {$gt: null}, series: {$regex: /mario/i} } }); 但我不知道如何将其编码为Erlang字符串。来自Cloudant支持: 我知道您希望在Cloudant查询中使用$reg

是否可以使用Cloudant查询/CouchDB 2.0查找设置$regex标志

具体来说,我想要一个不区分大小写的搜索和全局搜索也会很有用

在JavaScript中,我将执行以下操作:

db.find({
    selector: {
      _id: {$gt: null},
      series: {$regex: /mario/i}
    }
  });
但我不知道如何将其编码为Erlang字符串。

来自Cloudant支持:

我知道您希望在Cloudant查询中使用$regex运算符进行不区分大小写的匹配

例如,您可以使用此Cloudant查询选择器获取所有文档,其中“series”字段具有字符串值,其中与字符串“mario”不区分大小写匹配:

在名为query.txt的文件中使用该选择器,并为$ACCOUNTNAME、$DATABASE、$USERNAME和$PASSWORD设置适当的值,您可以运行此查询以获得正确的结果:

curl -X POST http://$ACCOUNTNAME.cloudant.com/$DATABASE/_find -H 
  "Content-Type: application/json" -d @query.txt -u $USERNAME:$PASSWORD
Cloudant查询选择器中的$regex操作符的Cloudant API参考:

大多数选择器表达式的工作方式与您对 给定操作员。$regex运算符使用的匹配算法 当前基于Perl兼容的正则表达式(PCRE) 图书馆。但是,并非所有PCRE库都已实现,并且 $regex运营商的某些部分超出了PCRE提供的范围。对于 有关实现内容的更多信息,请参阅Erlang正则表达式 表达信息

在Erlang正则表达式中,它引用的信息是 在选项列表中:compile(Regexp,options)->{ok,MP}{error,ErrSpec}

无案例

  • 模式中的字母同时匹配大写和小写字母

  • 它相当于Perl的/i选项,可以通过(?i)选项设置在模式中更改它

  • 大写和小写字母的定义与ISO-8859-1字符集中的定义相同


我希望这有帮助。

使用Erlang正则表达式进行couchdb字符串匹配 例子: {“选择器”:{“\u id”:{“$regex”:“sre+”},“doctype”:“user”},“字段”:[“\u id”],“sort”:[{“\u id”:“asc”}]}

注意:“(?m)”将进行多行搜索。这也可以与“i”标志结合使用。
curl -X POST http://$ACCOUNTNAME.cloudant.com/$DATABASE/_find -H 
  "Content-Type: application/json" -d @query.txt -u $USERNAME:$PASSWORD