如何通过两个输入参数限制 OrientDB 中的查询
how to limit query in OrientDB by two input params
我在数据库中有以下结构:
class(V): @city (Name, X, Y)
class(V): @route(Name)
class(V): @Alternative_Route(Name) extends from @route
class(E): @has_route_to
class(E): @has_subroute
边是这样连接到顶点的:
city -> has_route_to -> route -> has_route_to -> city
route -> has_subroute -> city
作为输入,我有两个点:City1 和 City2。
例如,我需要查看我们在 City1 和 City2 之间有哪些子路线。
我正在编写以下查询:
traverse outE('has_route_to'), has_route_to.in
from
(select * from City where Name = 'City1')
但是如果我执行它我会看到从 City1 到 City2 的所有路线。
可以对 OrientDB 说:只显示 City1 和 City2 之间的所有点吗?
试试这个:
select from route where (Name in (select both('has_route_to').Name from City where Name = "City1")) and (Name in (select both('has_route_to').Name from City where Name = "City2"))
希望对您有所帮助
此致
我在数据库中有以下结构:
class(V): @city (Name, X, Y)
class(V): @route(Name)
class(V): @Alternative_Route(Name) extends from @route
class(E): @has_route_to
class(E): @has_subroute
边是这样连接到顶点的:
city -> has_route_to -> route -> has_route_to -> city
route -> has_subroute -> city
作为输入,我有两个点:City1 和 City2。
例如,我需要查看我们在 City1 和 City2 之间有哪些子路线。
我正在编写以下查询:
traverse outE('has_route_to'), has_route_to.in
from
(select * from City where Name = 'City1')
但是如果我执行它我会看到从 City1 到 City2 的所有路线。
可以对 OrientDB 说:只显示 City1 和 City2 之间的所有点吗?
试试这个:
select from route where (Name in (select both('has_route_to').Name from City where Name = "City1")) and (Name in (select both('has_route_to').Name from City where Name = "City2"))
希望对您有所帮助
此致