如何在Aerospike Node.js客户端中获取主键

我正在尝试从Aerospike获取所有记录以及主键.
我尝试使用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()
  })
})

当密钥与记录一起存储时,查询将返回它们.

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...