空间类型
这是 GraphQL 库版本 6 的文档。对于长期支持 (LTS) 版本 5,请参阅 GraphQL 库版本 5 LTS。 |
空间类型
Neo4j GraphQL 空间类型转换为使用 Point
在数据库中存储的空间值。在 GraphQL 模式中使用这些类型中的任何一个都会自动引入运行与这些空间类型相关的查询和变异所需的类型。
Point
Point
类型用于描述 Neo4j 支持的两个 地理坐标参考系统。
为了在你的模式中使用它,请向模式中的任何其他类型添加一个类型为 Point
的字段,如下所示
type TypeWithPoint @node {
location: Point!
}
除了你需要通过 API 查询和操作空间类型的输入和输出类型之外,Point
类型还会自动添加到你的模式中。
有关过滤选项,请参阅 过滤空间类型。
查询和变异
由于 Point
是一个对象类型,因此它在查询和变异中具有额外的输入类型。但是,此输入类型与对象类型具有相同的形状
input PointInput {
latitude: Float!
longitude: Float!
height: Float
}
例如,你可以查询具有精确位置的 User
query Users($longitude: Float!, $latitude: Float!) {
users(where: { location_EQ: { longitude: $longitude, latitude: $latitude } }) {
name
location {
longitude
latitude
}
}
}
或者,你可以如下创建具有位置的 User
mutation CreateUsers($name: String!, $longitude: Float!, $latitude: Float!) {
createUsers(input: [{ name: $name, location: { longitude: $longitude, latitude: $latitude } }]) {
users {
name
location {
longitude
latitude
}
}
}
}