2017-08-26 34 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和安全管理)