如何在 couchbase 查询中找到结果的位置?

How to find position of result in couchbase query?

我正在寻找一种方法来为有序的 N1QL 查询找到第一个文档的位置(给定某种标准,如 userId="user123"),所以像这样:

SELECT ARRAY_POSITION(allPoints, "user123")
LET allPoints = (SELECT userId from stuff WHERE ... ORDER BY points DESC, userId ASC)

但是,它不起作用,因为子查询 "allPoints" returns 一个 对象数组 (每个对象只有一个属性 'userId')

发布后 2 分钟得到解决方案:)

我很接近,它是这样工作的:

SELECT ARRAY_POSITION(allPoints, {"userId":"user123"})
LET allPoints = (SELECT userId from stuff WHERE ... ORDER BY points DESC, userId ASC)

当 lang 10.0 和 lat 20.1 时,您还可以使用以下表达式在点数组中查找位置(WHEN 子句可以有任何类型的条件)

(FIRST pos FOR pos:v IN points WHEN v.lang = 10.0 AND v.lat = 20.1 END)