1

我的数据:

{
  "rootElement": {
    "names": {
      "name": [
        "Haseb",
        "Anil",
        "Ajinkya",
        {
          "city": "mumbai",
          "state": "maharashtra",
          "job": {
            "second": "bosch",
            "first": "infosys"
          }
        }
      ]
    },
    "places": {
      "place": {
        "origin": "INDIA",
        "current": "GERMANY"
      }
    }
  }
}

job我使用 API在字段上创建了一个哈希索引:
http://localhost:8529/_db/_api/index?collection=Metadata

{
  "type": "hash",
  "fields": [
    "rootElement.names.name[*].jobs"
  ]
}

我使用 API 进行搜索查询:
http://localhost:8529/_db/_api/simple/by-example

{
  "collection": "Metadata",
  "example": {
    "rootElement.names.name[*].jobs ": "bosch"
  }
}

理想情况下,只job : bosch应返回包含的文档作为结果。但对我来说,它提供了数组中的所有文档name[*]。我在哪里做错了?

4

1 回答 1

1

简单查询不支持数组星号运算符。

为此,您需要使用 AQL:

FOR elem IN Metadata FILTER elem.rootElement.names.name[*].jobs = "bosch" RETURN elem

您还可以通过 REST 接口执行 AQL - 但是您应该尝试让驱动程序为您完成繁重的工作。

于 2016-02-16T11:53:01.497 回答