append()
メソッドはデータベース内の既存のkey/valueペアに対して情報を追加することができます。これを利用して既存の文字列あるいはその他のデータの後ろに情報を追加することができます。
append()
メソッドはキーに対する既存のデータの末尾にシリアライズされたデータを追記します。Couchbaseにシリアライズしたオブジェクトを格納した後に
append
を利用しても、そのシリアライズされたオブジェクトの内容が拡張されることはありません。例えば、データベースに整数の配列
を追加した後、append()
を利用してさらに整数を追加しようとしても、キーの値としてはシリアライズされた配列とそれに続くシリアライズされた整数となります。追加された整数を保持する配列にはなりません。追記されたデータをデシリアライズした際にデータが破損している可能性があります。
API Call | client.append(casunique, key, value) | ||
Asynchronous | no | ||
Description | Append a value to an existing key | ||
Returns | Object (
Binary object
) | ||
Arguments | |||
long casunique | Unique value used to verify a key/value combination | ||
String key | Document ID used to identify the value | ||
Object value | Value to be stored |
append()
は既存のkey/valueペアの末尾に情報を追記します。append()
はCAS値を必要とします。CAS値の詳細については、「CAS get
メソッド」を参照してください。
例えば、既存のキーに文字列を追加するには:
CASValue<Object> casv = client.gets("samplekey"); client.append(casv.getCas(),"samplekey", "appendedstring");
OperationFuture
を使って追記操作が完了したか確認できます:
OperationFuture<Boolean> appendOp = client.append(casv.getCas(),"notsamplekey", "appendedstring"); try { if (appendOp.get().booleanValue()) { System.out.printf("Append succeeded\n"); } else { System.out.printf("Append failed\n"); } } catch (Exception e) { ... }
API Call | client.append(casunique, key, value, transcoder) | ||
Asynchronous | no | ||
Description | Append a value to an existing key | ||
Returns | Object (
Binary object
) | ||
Arguments | |||
long casunique | Unique value used to verify a key/value combination | ||
String key | Document ID used to identify the value | ||
Object value | Value to be stored | ||
Transcoder<T> transcoder | Transcoder class to be used to serialize value |
append()
メソッドの二つ目の形式ではカスタムトランスコーダを利用可能です。