UPSERT结合YIELD查询结果不对

版本: 2.0 GA版本

内存:128G,CPU:40 core
磁盘:HDD, 空间1.2T
操作系统:CentOS Linux release 7.6.1810 (Core)

CPU信息如下:
processor : 39
vendor_id : GenuineIntel
cpu family : 6
model : 79
model name : Intel® Xeon® CPU E5-2630 v4 @ 2.20GHz
stepping : 1
microcode : 0xb00002e
cpu MHz : 1240.051
cache size : 25600 KB

官方的文档地址:Nebula Graph CRUD - Nebula Graph Database Manual
插入语句:

nebula> INSERT VERTEX player(name, age) VALUES "player111":("Ben Simmons", 22);

UPSERT语句:

nebula> UPSERT VERTEX "player111" SET player.name = "Dwight Howard", player.age = $^.player.age + 11 \
WHEN $^.player.name == "Ben Simmons" AND $^.player.age > 20 \
YIELD $^.player.name AS Name, $^.player.age AS Age;

这里面有一个WHEN条件,我发现这里面的when条件可以随便设置,yield都能返回结果。
例如,我将$^.player.age >200, 也可以返回数据。

我理解要满足when的条件,yield才返回结果。但是结果貌似不是这样,求指导?

when 表示的是要不要做 upsert, 和 yield 没有关系,假如when 为true,那么upsert就生效,yield出来的就是更新之后的数据,假如when为false,那么yield出来的就是原来的数据。

明白了,也很好理解哈,多谢啦。

浙ICP备20010487号