2017-02-13 28 views
0

执行我有一个简单的喜欢的查询,告诉如果一个项目是最喜欢的一个人不使用许多选择阶梯效应查询小鬼的性能或如何是选择一步小鬼

g.V().has('personId','3f857b1').choose(identity().out('favourite').has('itemId','48a680b'),constant('Already_favourite'),choose(V().has('itemId','48a680b'),constant('NotFavourite'),constant('InvalidItem'))) 

它是一个不好的做法,编写嵌套选择步骤,因为它是在其他编程语言

我想知道,如果我们能够实现小鬼

+0

我个人觉得,选择如下的if else或开关实现 –

回答

2

存储过程是一个不好的做法,编写嵌套选择步骤

不,但我仍然会以不同的方式编写您的查询。如果项目不存在,不要浪费计算时间并快速停止遍历。另一方面,如果它存在,尝试通过它的id找到它;并不适用于所有相邻顶点获取itemId属性:

result = g.V().has('itemId', '48a680b').as('item'). 
      V().has('personId','3f857b1').coalesce(
       out('favourite').where(eq('item')).constant('Already_favourite'), 
       constant('NotFavourite')).tryNext().orElse('InvalidItem'); 
+0

谢谢丹尼尔这样的解释是非常有益的 –