从 Aerospike node.js 客户端检索主键
Retrieve Primary Key from Aerospike node.js client
我正在尝试使用 client.get() 在 Aerospike node.js 客户端中检索主键。我已经使用 client.put() 插入了记录,方法是将策略更改为 Aerospike.policy.key.SEND,如前所述 here and 。
现在我想检索记录以及主键。
我尝试按照 Aerospike Documentation 中提到的方式进行操作,但它似乎不起作用。
var key = aerospike.key(aerospikeDBParams.defaultNamespace,aerospikeDBParams.defaultSet,count);
var readpolicy = {
key: aerospike.policy.key.SEND
}
client.get(key, readpolicy, function(err, rec, meta){}
我得到了所有的 bin,但没有得到主键。我在这里错过了什么吗?
提前致谢。
您正在查看旧 1.x 客户端的文档。 2.x 客户端的文档位于 http://www.aerospike.com/apidocs/nodejs/
只要在写入操作中存储了密钥,您应该可以通过后续读取获得它。
const Aerospike = require('aerospike')
function assertOk (error, message) {
if (error) {
console.error('ERROR - %s: %s [%s]\n%s', message, error.message, error.code, error.stack)
throw error
}
}
const Key = Aerospike.Key
Aerospike.connect({ hosts: '127.0.0.1:3000' }, function (error, client) {
assertOk(error, 'Connecting to Aerospike cluster')
var key = new Aerospike.Key('test', 'demo', 1)
var bins = { a: 1, b: 2 }
var policy = {
key: Aerospike.policy.key.SEND
}
client.put(key, bins, {}, policy, function (error) {
assertOk(error, 'Writing database record')
client.get(key, function (error, record, meta) {
assertOk(error, 'Reading database record')
console.log(record, meta)
})
})
})
函数的第四个参数是你想要的主键信息
以我的代码为例:
var readpolicy = {
key: Aerospike.policy.key.SEND
}
var key = new Aerospike.Key(ns, set, "sel-fish")
client.get(key, readpolicy, function (err, record, metadata, key) {
if (null == err) {
console.log("get ok")
console.log(record)
console.log(metadata)
console.log(key)
}
})
输出为:
get ok
{ uid: 1000,
name: 'sel-fish',
dob: { mm: 12, dd: 29, yy: 1995 },
friends: [ 1001, 1002, 1003 ],
avatar: <Buffer 0a 0b 0c> }
{ ttl: 431997, gen: 3 }
Key { ns: 'test', set: '14', key: 'sel-fish', digest: null }
驱动版本为aerospike@2.0.3
我正在尝试使用 client.get() 在 Aerospike node.js 客户端中检索主键。我已经使用 client.put() 插入了记录,方法是将策略更改为 Aerospike.policy.key.SEND,如前所述 here and
现在我想检索记录以及主键。 我尝试按照 Aerospike Documentation 中提到的方式进行操作,但它似乎不起作用。
var key = aerospike.key(aerospikeDBParams.defaultNamespace,aerospikeDBParams.defaultSet,count);
var readpolicy = {
key: aerospike.policy.key.SEND
}
client.get(key, readpolicy, function(err, rec, meta){}
我得到了所有的 bin,但没有得到主键。我在这里错过了什么吗?
提前致谢。
您正在查看旧 1.x 客户端的文档。 2.x 客户端的文档位于 http://www.aerospike.com/apidocs/nodejs/
只要在写入操作中存储了密钥,您应该可以通过后续读取获得它。
const Aerospike = require('aerospike')
function assertOk (error, message) {
if (error) {
console.error('ERROR - %s: %s [%s]\n%s', message, error.message, error.code, error.stack)
throw error
}
}
const Key = Aerospike.Key
Aerospike.connect({ hosts: '127.0.0.1:3000' }, function (error, client) {
assertOk(error, 'Connecting to Aerospike cluster')
var key = new Aerospike.Key('test', 'demo', 1)
var bins = { a: 1, b: 2 }
var policy = {
key: Aerospike.policy.key.SEND
}
client.put(key, bins, {}, policy, function (error) {
assertOk(error, 'Writing database record')
client.get(key, function (error, record, meta) {
assertOk(error, 'Reading database record')
console.log(record, meta)
})
})
})
函数的第四个参数是你想要的主键信息
以我的代码为例:
var readpolicy = {
key: Aerospike.policy.key.SEND
}
var key = new Aerospike.Key(ns, set, "sel-fish")
client.get(key, readpolicy, function (err, record, metadata, key) {
if (null == err) {
console.log("get ok")
console.log(record)
console.log(metadata)
console.log(key)
}
})
输出为:
get ok
{ uid: 1000,
name: 'sel-fish',
dob: { mm: 12, dd: 29, yy: 1995 },
friends: [ 1001, 1002, 1003 ],
avatar: <Buffer 0a 0b 0c> }
{ ttl: 431997, gen: 3 }
Key { ns: 'test', set: '14', key: 'sel-fish', digest: null }
驱动版本为aerospike@2.0.3