【发布时间】:2020-06-18 09:30:43
【问题描述】:
我有一个看起来像这样的文档结构:
{
...
"groupedFieldKey": "groupedFieldVal",
"otherFieldKey": "otherFieldVal",
"filterFieldKey": "filterFieldVal"
...
}
我正在尝试获取关于 groupedFieldKey 唯一的所有文档。我还想从这些文档中的 ANY 中获取 otherField。这个otherFieldKey 从一个文档到另一个文档有微小的变化,但我很乐意获得这些值中的ANY。
SELECT DISTINCT groupedFieldKey, otherField
FROM bucket
WHERE filterFieldKey = "filterFieldVal";
由于细微的变化,此查询会获取所有文档。
SELECT groupedFieldKey, maxOtherFieldKey
FROM bucket
WHERE filterFieldKey = "filterFieldVal"
GROUP BY groupFieldKey
LETTING maxOtherFieldKey= MAX(otherFieldKey);
此查询按预期工作,但由于 GROUP BY 步骤而需要很长时间。由于此查询用于在 UI 中显示产品,因此这不是所需的行为。我尝试过应用索引,但效果不佳。
记录的实际细节:
- 记录数 = 100,000
- 每条记录的大小 = 大约 10 KB
- 加载前 10 条记录所用时间:3s
有没有更好的方法来做到这一点?仅在特定字段上获得 DISTINCT 的方法会很好。
编辑 1: 您可以在 Couchbase 论坛中关注此讨论帖:https://forums.couchbase.com/t/getting-distinct-on-the-basis-of-a-field-with-other-fields/26458
【问题讨论】: