嵌套字段的Geoindex?

时间:2017-03-17 14:44:56

标签: arangodb

我有以下JSON结构:

{
  "type": "Feature",
  "id": "node/1717565071",
  "properties": {
    "type": "node",
    "id": 1717565071,
    "tags": {
      "amenity": "post_box",
      "operator": "P&T",
      "collection_times": "Mo-Fr 08:30, Sa 08:00"
    },
    "relations": [],
    "meta": {
      "timestamp": "2012-04-15T09:24:35Z",
      "version": 1,
      "changeset": 11307674,
      "user": "kewl",
      "uid": 317259
    }
  },
  "geometry": {
    "type": "Point",
    "coordinates": [
      6.1428674,
      49.5716325
    ]
  }
}

我需要为它创建geoindex。

我运行命令:

127.0.0.1:8529@geodb> db.lux1.ensureIndex({ type: "geo", fields: [ "coordinates" ] } )
{
  "id" : "lux1/569778",
  "type" : "geo1",
  "fields" : [
    "coordinates"
  ],
  "geoJson" : false,
  "constraint" : false,
  "unique" : false,
  "ignoreNull" : true,
  "sparse" : true,
  "isNewlyCreated" : false,
  "code" : 200
}

我期待一些处理,但不是简单的输出。

我也试过了:

127.0.0.1:8529@geodb> db.lux1.ensureIndex({ type: "geo", fields: [ "geometry.coordinates" ] } )
{
  "id" : "lux1/570071",
  "type" : "geo1",
  "fields" : [
    "geometry.coordinates"
  ],
  "geoJson" : false,
  "constraint" : false,
  "unique" : false,
  "ignoreNull" : true,
  "sparse" : true,
  "isNewlyCreated" : true,
  "code" : 201
}

我认为我错过了fields

如何为创建索引指定正确的密钥?

1 个答案:

答案 0 :(得分:0)

你的第一次尝试显然是错误的,因为路径错了。 ArangoDB已经告诉过你:"isNewlyCreated" : false

第二次尝试是正确的,ArangoDB也告诉你:"isNewlyCreated" : true

那么为什么你认为它不起作用?只需尝试地理查询。如果您的字段上没有地理索引,则会收到错误。

详细了解:https://docs.arangodb.com/3.1/Manual/Indexing/Geo.html