如何在沙发床查询中找到结果的位置?

时间:2019-07-04 11:00:29

标签: couchbase n1ql

我正在寻找一种方法来查找有序N1QL查询的第一个文档的位置(给定诸如userId="user123"之类的条件,所以类似这样:

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

但是,它不起作用,因为子查询“ allPoints”返回了一个 objects 数组(每个对象只有一个属性为“ userId”)

2 个答案:

答案 0 :(得分:0)

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

我离我很近,它是这样的:

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

答案 1 :(得分:0)

当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)