从 Couchbase 获取每个文档类型的样本
Get a sample of each doctype from Couchbase
我正在使用 Couchbase 存储桶,其中所有文档都保存有一个 DocType
属性,用于标识包含的数据类型。我想执行一个查询,每个 DocType
都会给我一个结果,以用作所有文档类型的样本。
我可以使用 SELECT DISTINCT(DocType) FROM some-database
获取每个 DocType。我可以通过 SELECT * FROM some-database WHERE DocType='User' LIMIT 1
获得样本。但我不知道如何将这些东西结合起来,使单个查询 return 来自每个匹配的 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);
我正在使用 Couchbase 存储桶,其中所有文档都保存有一个 DocType
属性,用于标识包含的数据类型。我想执行一个查询,每个 DocType
都会给我一个结果,以用作所有文档类型的样本。
我可以使用 SELECT DISTINCT(DocType) FROM some-database
获取每个 DocType。我可以通过 SELECT * FROM some-database WHERE DocType='User' LIMIT 1
获得样本。但我不知道如何将这些东西结合起来,使单个查询 return 来自每个匹配的 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);