2016-11-29 40 views
1

我嘗試運行此查詢Couchbase N1qlQuery:刪除導致錯誤的查詢服務

delete from bucket o 
use keys (select raw ARRAY_CONCAT(ARRAY_CONCAT(ARRAY_CONCAT(d, t), s), u) 
from bucket 
use keys 'SS') 

我得到這樣的迴應:

{ 
    "status": "Unexpected server error" 
} 

在服務器日誌中我看到這一點:

Service 'query' exited with status 1. Restarting. Messages: runtime.goexit() 
/usr/local/go/src/runtime/asm_amd64.s:2232 +0x1 fp=0xc20e97cfc0 sp=0xc20e97cfb8 
created by github.com/couchbase/query/parser/n1ql.NewLexerWithInit 
/home/couchbase/jenkins/workspace/watson-unix/goproj/src/github.com/couchbase/query/parser/n1ql/n1ql.nn.go:30999 +0x4a6c9 
[goport] 2016/11/29 08:40:11 /opt/couchbase/bin/cbq-engine terminated: signal: aborted (core dumped) 

這個查詢有什麼問題?

我使用的是couchbase版本4.5。

+0

什麼版本Couchbase的是你使用? – geraldss

+0

@geraldss couchbase 4.5版 – igreen

回答

1

您還可以使用ARRAY_FLATTEN()函數或FIRST運算符。從桶使用密鑰 'SS' )從桶o使用鍵

刪除 ARRAY_FLATTEN(選擇原始ARRAY_CONCAT(ARRAY_CONCAT(ARRAY_CONCAT(d,T),S)中,u),1 ) 返回meta(o).id;

從桶刪除ö 使用鍵第一X對於x IN 選擇原始ARRAY_CONCAT(ARRAY_CONCAT(ARRAY_CONCAT(d,T),S)中,u) 從桶 使用鍵'SS' END 返回meta(o).id;

注意括號(粗斜體)需要圍繞子查詢時,它被用作表達式(例如,作爲參數傳遞給ARRAY_FLATTEN(),或在第一構建)

0

USE KEYS需要數組鍵。 ARRAY_CONCAT()返回數組,Subquery返回數組。它成爲數組的數組。

刪除其中一個數組,如下所示。 (從剷鬥 使用密鑰 'SS' 選擇原始ARRAY_CONCAT(ARRAY_CONCAT(ARRAY_CONCAT(d,T),S)中,u) )從桶

刪除ö 使用鍵[0];

如果ARRAY_CONCAT()參數缺失或爲空,它可能會在4.5中返回相同的恐慌錯誤。這已在4.5.1中修復。