1

私は ArangoDB が初めてで、時空間 DB を実行しようとしています。頂点「Parz1」には、2 つの GeoJSON が接続されています。私の目標は、エッジのキー「エンデ」の値「9999」を持つジオメトリ頂点をフィルタリングすることです。エッジの値で頂点をフィルタリングする方法に関するドキュメントが見つかりませんでした。助けてくれてありがとう!

最初の頂点:

  Document: Parzelle/Parz1
    _rev:83054176547
    _key:Parz1
    {
      "Nummer": "1",
      "Gmd": "Muttenz"
    }

ジオメトリの頂点:

    Document: Geometrie/Geom1
    _rev:83050703139
    _key:Geom1
    {
      "type": "Polygon",
      "coordinates": [
        [
          [
            600000,
            200000
          ],
          [
            600000,
            200002
          ],
          [
            600002,
            200002
          ],
          [
            600002,
            200000
          ],
          [
            600000,
            200000
          ]
        ]
      ]
    }
Document: Geometrie/Geom4
_rev:83051424035
_key:Geom4
{
  "type": "Polygon",
  "coordinates": [
    [
      [
        600000,
        200000
      ],
      [
        599998,
        200000
      ],
      [
        600000,
        200002
      ],
      [
        600002,
        200002
      ],
      [
        600002,
        200000
      ],
      [
        600000,
        200000
      ]
    ]
  ]
}

そしてエッジ:

Edge: hatGeom/37050525987
_rev:83056470307
_key:37050525987
_from:Parzelle/Parz1
_to:Geometrie/Geom1
{
  "Start": "1950",
  "Ende": "2010"
}

Edge: hatGeom/37067237667
_rev:83056797987
_key:37067237667
_from:Parzelle/Parz1
_to:Geometrie/Geom4
{
  "Start": "2011",
  "Ende": "9999"
}
4

1 に答える 1

1

ArangoDB 2.8 では、新しいトラバーサルとパターン マッチング API を提供しています。次に、エッジと頂点で効果的にフィルター処理できます。

FOR v, e, p IN 
  1..3 OUTBOUND 'vertexCollection/startVertex'
  GRAPH 'geometryGraph' 
    FILTER p.edges[1].start > 1950 RETURN v

Geo インデックスを使用して、グラフ トラバーサルの開始一致を見つけることもできます。

FOR startVertex IN WITHIN(vertexCollection, @latitude, @longitude, @limit) 
  FOR v, e, p IN 
    1..3 OUTBOUND startVertex
    GRAPH 'geometryGraph' 
      FILTER p.edges[1].start > 1950 RETURN v
于 2015-12-08T16:15:29.473 に答える