【发布时间】:2017-07-05 13:04:52
【问题描述】:
我正在使用 aerospike。使用 AQL,我插入了一些数据。我想在 aerospike 中获取具有特定字段的记录的空值。我在该图片中标记图片一条记录没有名称它的空白空间
【问题讨论】:
我正在使用 aerospike。使用 AQL,我插入了一些数据。我想在 aerospike 中获取具有特定字段的记录的空值。我在该图片中标记图片一条记录没有名称它的空白空间
【问题讨论】:
Aeropsike 是无模式的 - 每条记录都是自我描述的。任何非空的 bin 都是记录的一部分。任何更新为 null 的 bin 实际上都会从记录中删除。因此,考虑记录单位而不是带有列的表。您可以从记录中查询特定的 bin,如果未找到,Aeropsike 将返回 null。这是java API:
public final Record get(Policy policy,
Key key,
String... binNames)
throws AerospikeException
Read record header and bins for specified key. The policy can be used to specify timeouts.
Specified by:
get in interface IAerospikeClient
Parameters:
policy - generic configuration parameters, pass in null for defaults
key - unique record identifier
binNames - bins to retrieve
Returns:
if found, return record instance. If not found, return null.
Throws:
AerospikeException - if read fails
【讨论】:
运行一些测试代码 - 记录密钥对其他一些 bin 有效:
userRecord = client.get(null, userKey, "notThereBin");
if (userRecord != null) {
console.printf("\nINFO: User record with notThereBin read successfully! Here are the details:\n");
console.printf("notThereBin: " + userRecord.getValue("notThereBin") + "\n");
} else {
console.printf("ERROR: User record not found!\n");
}
输出是:
INFO: User record with notThereBin read successfully! Here are the details:
notThereBin: null
【讨论】: