gpt4 book ai didi

java - Aerospike - 检查/递增列表中的 NIL 值?

转载 作者:行者123 更新时间:2023-12-01 22:11:36 26 4
gpt4 key购买 nike

如果我运行此代码,它会递增索引 7 中存在的任何值,如果 7 之前的任何索引不存在,它只会将 NIL 作为其值

代码

Operation operation = ListOperation.increment( "incre", 7 );
client.operate( policy, key, operation );

AQL

aql> select * from test.users
+----+----------------------------------------+
| PK | incre |
+----+----------------------------------------+
| 2 | LIST('[1, 1, 1, 2, 1, 1, NIL, 1]') |
+----+----------------------------------------+
1 row in set (0.095 secs)

如您所见,索引 6 不存在,因此 aerospike 自动将 NIL 放在其位置。如果我尝试增加索引 6,则会收到此错误。

Exception in thread "main" com.aerospike.client.AerospikeException: Error 4,1,30000,0,0,BB955892AFD8CA0 127.0.0.1 3000: Parameter error

我的问题:-

1) 是否可以为不存在的索引设置任何类型的默认值而不是 NIL ?如果无法检查 NIL,是否可以增加 NIL?

2)有没有办法在增加 NIL 值之前检查它?

最佳答案

增量运算假定数据类型为整数。因此,当您尝试在位置 7 处递增时,并且那里还没有元素,它会从整数 0 开始并递增到 1。但是,正如您所注意到的,第 6 个位置填充了 NIL,因为列表需要连续。现在的问题是 NIL 不是整数。因此,您无法增加它。

回答您的具体问题:

  1. 不可以,无法填写特定的默认值。
  2. 您可以在可以使用Value类的getType()的位置读取元素来了解该元素是否为null类型。

关于java - Aerospike - 检查/递增列表中的 NIL 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59983260/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com