微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在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()
  })
})

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐