【问题标题】:Get a sample of each doctype from Couchbase从 Couchbase 获取每个文档类型的样本
【发布时间】:2020-03-30 19:28:50
【问题描述】:

我正在使用 Couchbase 存储桶,其中所有文档都保存有 DocType 属性,用于标识包含的数据类型。我想执行一个查询,该查询将为我提供来自每个 DocType 的单个结果,以用作所有文档类型的样本。

我可以使用SELECT DISTINCT(DocType) FROM some-database 获取每个 DocType。我可以通过SELECT * FROM some-database WHERE DocType='User' LIMIT 1 获取样本。但是我不知道如何结合这些东西来使单个查询从每个匹配的 DocType 中返回一个示例。

【问题讨论】:

标签: couchbase n1ql


【解决方案1】:

您可以使用 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);

【讨论】:

  • 非常感谢!这是完美的!
猜你喜欢
  • 1970-01-01
  • 2021-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-23
  • 1970-01-01
  • 2016-12-06
  • 1970-01-01
相关资源
最近更新 更多