2017-08-26 115 views
2

得到具体的行中塞式当我使用塞式查询下它的工作原理:如何使用AQL

aql> select * from connekt.inapp 

,如下图所示:

enter image description here

但是找到一个特定条目我我正在尝试以下查询,但它不起作用:

aql> select * from connekt.inapp where DIGEST = "viwZnPMMutuTZkPBV/PPL6hmWW0=" 

Error: (2) AEROSPIKE_ERR_RECORD_NOT_FOUND

enter image description here

如何使用aql从Aerospike获取特定行。

回答

2

做一些研究,并通过docs去后,我意识到,在我的情况下,消化是Base64编码,格式,所以我必须使用EDIGEST像下面的查询:

aql> select * from connekt.inapp where EDIGEST = "viwZnPMMutuTZkPBV/PPL6hmWW0=" 

docs

When providing the HEX representation of the digest (for example from the server logs), use DIGEST :

SELECT * FROM [.] WHERE DIGEST='DIGEST_HEX_STRING'

When providing the Base64 representation of the digest (for example from asbackup file), use EDIGEST :

SELECT * FROM [.] WHERE EDIGEST=DIGEST_B64_STRING

但是,当像这样查询时,结果摘要是AAAAAAAAAAAAAAAAAAAAAAAAAAA=,我不知道为什么是这种情况。

enter image description here

4

的消化,你所看到的“AAAA .... =”那是在AQL化妆品的错误 - 我相信以前它是固定的几个月里,不知道哪些工具发行的版本有它。 [错误 - 工具 - 746]

这是相当没有实际意义,因为你已经知道摘要 - 你把它用在了哪里= “viwZn ......”

顺便说一句,做

$aql aql>HELP

有关常用AQL命令列表的信息。 (digest =和edigest =在生产中很少用到,AQL最适用于探索数据,创建和管理二级索引,开发UDF和安全管理)