で
感謝。クライアントとサーバーはダイジェストを使用してレコードを探します。ダイジェストはクライアントが(namespace、set、primary-key)情報を使用してハッシュします。キー書き込みポリシーのデフォルト値はAerospike.policy.key.DIGEST
です。代わりに明示的にそれをAerospike.policy.key.SEND
に設定する必要があります。
Aerospike:moduleのマニュアルを参照してください。それは、この例が含まれています
// global policy, applied to all commands that do not override it
var config = {
policies: {
timeout: 100,
retry: Aerospike.policy.retry.ONCE
}
}
Aerospike.connect(config, (error, client) => {
if (error) throw error
var key = new Aerospike.Key('test', 'demo', 'k1')
var record = {i: 1234}
// override policy for put command
var policy = {
exists: Aerospike.policy.exists.CREATE,
key: Aerospike.policy.key.SEND
}
client.put(key, record, {}, policy, (error) => {
if (error && error.code === Aerospike.status.AEROSPIKE_ERR_RECORD_EXISTS) {
console.info('record already exists')
} else if (error) {
throw error
}
client.close()
})
})
キーがレコードに格納されている場合、クエリがそれらを返します。
これは、サーバーにキー情報を入力する方法です。しかし、クエリメソッドはrecordStreamを返します。データイベントのみが返されます(ビン、メタ)、私は 'key'を見つけることができません。 Javaクライアントの考えを使用するのは大丈夫です。 –
@Ronenそれは..ありがとう:) –
@ sel-fish、あなたは正しいです:v2.0.3現在、クライアントのレコードストリーム 'data'イベントはレコードキーを含んでいません。これはv1クライアントの[回帰](https://github.com/aerospike/aerospike-client-nodejs/issues/126)です。次のパッチリリースでこれを修正します。 –