You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Fabric的CouchDB中查询JSON结构内的access对象

错误原因

你的现有查询逻辑不匹配数据结构:access数组的每一项都是包含权限键值对的对象,而非直接存储create这类字符串,因此用$eq: "create"匹配字符串无法命中任何记录。

正确查询语句

根据你的查询需求分以下场景:

  • 查询包含create权限字段(任意权限值)的记录
    使用$exists判断对象中是否存在对应权限键:
{
  "selector": {
    "Company": {
      "Associate": {
        "access": {
          "$elemMatch": {
            "create": {
              "$exists": true
            }
          }
        }
      }
    }
  }
}
  • 查询create权限值为allowed的记录
    直接在$elemMatch中匹配键值对即可:
{
  "selector": {
    "Company": {
      "Associate": {
        "access": {
          "$elemMatch": {
            "create": "allowed"
          }
        }
      }
    }
  }
}
  • 查询同时包含create和readonly两个权限的记录
    用$and组合多个匹配条件:
{
  "selector": {
    "$and": [
      {
        "Company.Associate.access": {
          "$elemMatch": {
            "create": {
              "$exists": true
            }
          }
        }
      },
      {
        "Company.Associate.access": {
          "$elemMatch": {
            "readonly": {
              "$exists": true
            }
          }
        }
      }
    ]
  }
}

注意事项

如果链码部署后查询无返回,需要确认你已经为查询字段创建了CouchDB索引,否则Fabric会默认禁止全表扫描类的查询。

内容的提问来源于stack exchange,提问作者Dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 01:51:02