具有命名参数的 Couchbase N1QL 基本 select

Couchbase N1QL basic select with named parameter

尝试基本的 N1QL select(official docs 给出的查询的简化版本)似乎只适用于有序参数,至少对我来说不起作用命名参数(returns空集):

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=', "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)

命名参数查询有什么问题?

vsr 的回答基本正确,您的查询应该是: query = N1QLQuery('SELECT airportname, city, country FROM `travel-sample` WHERE city=$my_city', my_city="London")

语句文本中的命名变量需要 $ 前缀,但您不需要为命名参数本身添加前缀。

我会为您引用的页面提交文档错误以修复该问题。

谢谢。