gpt4 book ai didi

CouchDB 查看 SUM 和 GROUP BY 的等效项

转载 作者:行者123 更新时间:2023-12-01 19:52:36 24 4
gpt4 key购买 nike

我有多个 CouchDB 文档,表示带有属性 userId 和标签的时间戳(用户可以有 n 个时间戳并为每个时间戳分配一个标签)。我想通过特定的 userId 查询 CouchDB 并获取用户使用过的标签的排序列表(按出现次数排序)。

View 会是什么样子?

如果我想获取按出现次数排序的所有标签的列表(无论来自哪个用户),或者如果我假设只有具有相同 userId 的文档,我会这样做:

map :

function(doc) {
if(doc.tag) emit(doc.tag, 1);
}

减少:

function(keys, values) {
return sum(values);
}

但是如何对结果进行分组,以便可以按特定的 userId 过滤查询?

最佳答案

回答我自己的问题。

似乎 CouchDB 支持数组作为键。考虑到这一点,事情就非常简单了:

map :

function(doc) {
if(doc.tag) emit([doc.userId, doc.tag], 1);
}

减少:

function(keys, values) {
return sum(values);
}

然后结果按 userId 和标签排序。

关于CouchDB 查看 SUM 和 GROUP BY 的等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5511810/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com