CouchDB 如何进行多个IN [“V1”,“V3”,“V5”]查询

qojgxg4l  于 2022-12-09  发布在  CouchDB
关注(0)|答案(1)|浏览(185)

对于具有以下结构的文档

{
  "countryCode": "US",
  "status" : "Pending"
}

其中countryCode具有有限的选项列表(ISO国家/地区代码),status也具有有限的选项集,我需要仅选择基本上用于给定国家/地区列表和给定状态列表的文档
在SQL中的意思是
countryCode IN ["US","AR", "UK"] * 与 * status IN ["Pending", "Error", "Loading"]
在Cloudant / CouchDB中是否可以实现?

ubof19bj

ubof19bj1#

使用CouchDB的/db/_find,下面的selector将产生所需的结果:

{
   "selector":{
      "$and":[
         {
            "countryCode":{
               "$in":["US", "AR", "UK"]
            }
         },
         {
            "status":{
               "$in":["Pending", "Error", "Loading"]
            }
         }
      ]
   }
}

条件运算子(例如$in)是特定于字段的,用来评估储存在该字段中的值。

** curl **

curl -H 'Content-Type: application/json' -X POST http://localhost:5984/<db>/_find -d '{"selector":{"$and":[{"countryCode":{"$in":["US", "AR", "UK"]}},{"status":{"$in":["Pending", "Error", "Loading"]}}]}}'

相关问题