2017-08-14 23 views
0

試圖基本N1QL選擇(通過official docs定的查詢的簡化版本)似乎只與有序參數工作,對我來說並不至少工作智慧命名的參數(返回空集):Couchbase N1QL基本選擇與命名參數

from couchbase.n1ql import N1QLQuery 
from couchbase.bucket import Bucket 
bucket = Bucket('couchbase://127.0.0.1/travel-sample') 

# ordered param - works 
query = N1QLQuery('SELECT airportname, city, country FROM `travel-sample` WHERE city=$1', "London") 

# named param - does not work 
query = N1QLQuery('SELECT airportname, city, country FROM `travel-sample` WHERE city=my_city', my_city="London") 

for row in bucket.n1ql_query(query): 
    print(row) 

我該如何處理命名參數查詢?

+0

試試這個。 query = N1QLQuery('SELECT airportname,city,country FROM'travel-sample' WHERE city = $ my_city',$ my_city =「London」) – vsr

+0

感謝您的回覆!這是Python,而不是PHP,所以$ my_city生成一個語法錯誤:query = N1QLQuery('SELECT airportname,city,country FROM travel-sample WHERE city = $ my_city',$ my_city =「London」) SyntaxError:invalid syntax ... – uzla

回答

0

VSR的回答很接近正確,你的查詢應該是: query = N1QLQuery('SELECT airportname, city, country FROM `travel-sample` WHERE city=$my_city', my_city="London")

在聲明文本命名變量需要$前綴,但你並不需要前綴命名的參數本身。

我將爲您引用的頁面提交一個文檔錯誤以獲得修復。

謝謝。