エアロスパイク - リストの中NIL値の確認/インクリメント?

ダンテ・アダムス:

私はこのコードを実行すると、値が7の前に、インデックスのいずれかが存在しない場合、それは単にその値としてNILを置き、インデックス7に存在し、それが何であれ刻み

コード

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がないので、自動的にその場所に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位に増分にしてみてください、そしてそこには要素がまだ存在しない場合にそう、それはあなたが気づいたとしてリストニーズが連続するように、6位がNILで満たされている、しかし1の整数0と刻みで始まります。さて問題は、NILが整数ではないということです。だから、あなたはそれをインクリメントすることはできません。

あなたの特定の質問に答えるには:

  1. いいえ、特定のデフォルト値を記入することはできません。
  2. あなたは要素がnullタイプであるかどうかを知るために、ValueクラスののgetType()を使用することができる位置にある要素を読み取ることができます。

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=478185&siteId=1