可以尝试将布尔字段的值存储为数字(0表示false,1表示true),然后进行过滤。以下是一个Python的示例代码:
import aerospike
config = {
'hosts': [('127.0.0.1', 3000)]
}
client = aerospike.client(config).connect()
key = ('test', 'demo', 1)
data = {
'name': 'John',
'age': 30,
'is_employee': 1 # 改变布尔值为数字
}
client.put(key, data)
# 使用数字值进行过滤
query = client.query('test', 'demo')
query.where(aerospike.predicates.equals('is_employee', 1))
records = query.results()
for record in records:
print(record)
client.close()
在上面的代码中,我们将布尔字段“is_employee”的值从true/false改为1/0。然后,我们使用数字1来进行过滤,以查找所有“is_employee”为true的记录。这应该返回之前布尔过滤器无法返回的结果。
请注意,这种方法只是一种暂时的解决方法。最好的解决方法是使用Aerospike的最新版本。