我正在使用Couchbase存储桶,其中所有文档都保存有DocType
属性,该属性标识了包含的数据类型。我想执行一个查询,该查询将从每个DocType
中给我一个结果,用作所有文档类型的样本。
我可以使用SELECT DISTINCT(DocType) FROM some-database
获取每个DocType。我可以通过SELECT * FROM some-database WHERE DocType='User' LIMIT 1
获得样本。但是我不知道如何组合这些内容以使单个查询从每个匹配的DocType返回单个示例。
您可以使用GROUP查询。
SELECT MAX(d).*
FROM default AS d
WHERE d.DocType IS NOT NULL
GROUP BY d.DocType;
或首先使用涵盖的索引为不同的DocType获取一个文档密钥,然后得到那些文件。
CREATE INDEX ix1 ON default(DocType);
SELECT d1.*
FROM default d1 USE KEYS (
SELECT RAW MAX(META(d).id)
FROM default AS d
WHERE d.DocType IS NOT NULL
GROUP BY d.DocType);