Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果顶点的边具有特性值,请选择一个顶点,否则请选择另一个具有不同边特性值的顶点_C#_Gremlin_Azure Cosmosdb Gremlinapi - Fatal编程技术网

C# 如果顶点的边具有特性值,请选择一个顶点,否则请选择另一个具有不同边特性值的顶点

C# 如果顶点的边具有特性值,请选择一个顶点,否则请选择另一个具有不同边特性值的顶点,c#,gremlin,azure-cosmosdb-gremlinapi,C#,Gremlin,Azure Cosmosdb Gremlinapi,我正在尝试获取将请求顶点连接到每个卡顶点的顶点。卡与请求的关系是一对多(每张卡有多个请求) 如果卡正在使用,则可以将卡连接到属性为“Status”:“In Use”的请求。每张卡还将连接到许多具有属性的请求“状态”:“未来使用”或“过去使用” 我正在尝试创建一个表格,显示每张卡的最新使用情况 因此,如果连接到卡的边缘具有属性“Status”:“In Use”,我想返回一个请求 如果该卡当前未使用,我将查找最近使用该卡的请求(“状态”:“过去使用”) 如果该卡从未被使用过,我会寻找即将使用该卡的最

我正在尝试获取将请求顶点连接到每个顶点的顶点。卡与请求的关系是一对多(每张卡有多个请求)

如果卡正在使用,则可以将卡连接到属性为
“Status”
“In Use”
的请求。每张卡还将连接到许多具有属性的请求
“状态”
“未来使用”
“过去使用”

我正在尝试创建一个表格,显示每张卡的最新使用情况

因此,如果连接到卡的边缘具有属性
“Status”
“In Use”
,我想返回一个请求

如果该卡当前未使用,我将查找最近使用该卡的请求(
“状态”
“过去使用”

如果该卡从未被使用过,我会寻找即将使用该卡的最快请求(
“Status”
“Future use”

我已尝试使用
合并

.coalesce(
 select('request')
  .outE().hasLabel('AssignedTo}').has('Status', 'In Use'),
 select('request')
  .outE().hasLabel('AssignedTo').has('Status', 'Past Use').order().by('Timestamp', decr).limit(1),
 select('request')
  .outE().hasLabel('AssignedTo').has('Status', 'Future Use').order().by('Timestamp', incr).limit(1)
).as('status')
但这只返回一条记录(正在使用)。另一个版本:

.coalesce(
 select('card')
  .inE().hasLabel('AssignedTo}').has('Status', 'In Use'),
 select('card')
  .inE().hasLabel('AssignedTo').has('Status', 'Past Use').order().by('Timestamp', decr).limit(1),
 select('card')
  .inE().hasLabel('AssignedTo').has('Status', 'Future Use').order().by('Timestamp', incr).limit(1)
).as('status')
这只返回了两条记录(都在使用中)

我不久前尝试了
choose
,但也没有成功(不记得到底发生了什么)

期望值:

获取具有边的单个顶点,该边的属性为
“Status”
“In Use”

如果此边不存在,请获取具有属性为
“Status”
“pass Use”
的边的最近顶点


如果没有符合条件的边,则获取最快即将到来的顶点,该顶点具有属性
“Status”
“Future Use”

我不确定您的查询出了什么问题,因为您没有完全发布它,但这应该可以工作:

g.V().hasLabel("Card").as("c").coalesce(
    outE("assigned").has("status", "In Use"),
    outE("assigned").has("status", "Past Use").order().by("Timestamp", desc).limit(1),
    outE("assigned").has("status", "Future Use").order().by("Timestamp", asc).limit(1),
).as("s").inV().as("r")
.select("c","s","r").by("name").by("status").by("name")