[英]Filtering Vertices by Edge-Attribut in ArangoDB
我是ArangoDB的新手,请尝试做一个时空数据库。 对于顶点“ Parz1”,我连接了两个GeoJSON。 我的目标是过滤几何顶点,其边缘中的键“ Ende”的值为“ 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"
}
使用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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.