我正在尝试从Aerospike获取所有记录以及主键.
我尝试使用client.query功能,如下所示
我尝试使用client.query功能,如下所示
var query = client.query(aerospikeDBParams.dbname,"testRecords"); var stream = query.execute();
有了这个我得到除了主键以外的所有字段.如何获得主键和其他字段?
提前致谢
解决方法
首先需要使用
record实际存储主键.客户端和服务器使用其摘要定位记录,客户端使用(名称空间,集,主键)信息进行哈希.密钥写入策略的默认值是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() }) })
当密钥与记录一起存储时,查询将返回它们.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。