2

假设我想查询所有place_name在美国的。我的查询或字段应该是什么?

在这里,我粘贴了我的查询,它只给了我第一个索引,但我想获取所有数据。那应该是我的查询。

{
      "post_code": 35801,
      "country": "United States",
      "country_abbreviation": "US",
      "places": [
        {
          "place_name": "Huntsville",
          "longitude": -86.5673,
          "state": "Alabama",
          "state_abbreviation": "AL",
          "latitude": 34.7269
        },
{
          "place_name": "Huntsville12345",
          "longitude": -86.5673,
          "state": "Alabama",
          "state_abbreviation": "AL",
          "latitude": 34.7269
        }
      ]
    },

目前的查询是

"selector": {
    "places.0.place_name": {
        "$gte": null
      }

  },
  "fields": [
    "_id",
    "places.0.place_name"
  ],
  "sort": [
    {
      "places.0.place_name": "asc"
    }
  ]
}
4

1 回答 1

1

对于这种查询,您应该使用视图。

您可以创建一个映射以下键的视图:[country,place_name]

地图功能例如:

function(doc){
  if(doc.places){
    for(var i in doc.places){
      emit([doc.country,doc.places[i].place_name);
    }
  }
}

这让您可以查询:国家列表和每个国家的地点列表。

如果您想要国家/地区列表,可以在查询中使用以下参数:group_level=1&group=true

如果你想得到美国的地方:startkey=['United states']

于 2018-12-06T16:22:45.160 回答