Couchbase 中 WHERE 子句中的条件

Conditions in WHERE clause in Couchbase

我是 couchbase 的新手。无法在网上找到我想要实现的目标。

我正在尝试使用特定文档类型的条件。我的情况是这样的 - 如果文档类型是 'type1' 然后在该文档和文档类型中找到特定的 ID 'type2' 然后只在该文档类型中找到另一个 ID。我的查询如下 -

SELECT DISTINCT appDetail.id, appDetail.group_id_record
FROM default appDetail
LEFT JOIN default users ON KEYS appDetail.id
LEFT JOIN default groups ON KEYS ARRAY 'app_detail::' || TO_STRING(c) FOR c 
IN appDetail.group_id_record END
WHERE (appDetail.type = 'user' OR appDetail.type = 'app_detail')

我假设我在 JOIN 中需要附加条件?

使用CASE conditional operator

SELECT DISTINCT CASE  WHEN appDetail.type = 'user' THEN appDetail.id WHEN appDetail.type = 'app_detail' THEN appDetail.detailId END, appDetail.group_id_record
FROM default appDetail
LEFT JOIN default users ON KEYS appDetail.id
LEFT JOIN default groups ON KEYS ARRAY 'app_detail::' || TO_STRING(c) FOR c 
IN appDetail.group_id_record END
WHERE (appDetail.type = 'user' OR appDetail.type = 'app_detail')

请小心查询中的 DISTINCT,因为尽管类型不同,但您将相同的 ID 分组(我认为您不想要此结果)