gpt4 book ai didi

CouchDB 查看排序规则,一键加入,搜索其他值

转载 作者:行者123 更新时间:2023-12-01 06:46:16 25 4
gpt4 key购买 nike

查看 Couch DB Joins 中描述的示例.

它讨论了 View 排序以及如何为博客文章创建一个文档,然后每个评论在 CouchDB 中都是一个单独的文档。例如,我可以将“我的帖子”和 5 条评论与“我的帖子”相关联,共 6 个文档。在他们的示例中,“myslug”存储在帖子文档和每个评论文档中,因此当我使用键“myslug”搜索 CouchDB 时,它会返回所有文档。

这是问题/问题。假设我想在评论中搜索作者和一个也有“新闻”类别的帖子。这将如何运作?

例如:

function(doc) {
if (doc.type == "post") {
emit([doc._id, 0], doc);
} else if (doc.type == "comment") {
emit([doc.post, 1], doc);
}
}

这将加载我的博客文章和基于此的评论: ?startkey=["myslug"]
但是,我想这样做,获取作者 bob 的评论,以及包含新闻类别的帖子。对于此示例,bob 已在博客文章中使用新闻类别写了三条评论。似乎 CouchDB 只允许我搜索两个文档中都存在的键,而不是搜索一个文档中的键,以及与 map 函数“连接”在一起的另一个文档中的键。

换句话说,如果帖子和评论由 slug 连接,我如何在一个文档中的一个字段和另一个文档中由 id aka 连接的另一个字段进行搜索。蛞蝓?

在 SQL 中,它会是这样的:

SELECT * FROM comments JOIN doc.id ON doc.post WHERE author = bob AND category = news

最佳答案

我已经调查了 couchdb 大约一个星期,所以我几乎没有资格回答你的问题,但我想我已经得出结论它无法完成。 View 结果需要绑定(bind)到一个且只有一个文档,以便可以更新 View 。您将不得不进行非规范化,至少如果您不想进行繁重的搜索。如果有人想出一个聪明的方法来做到这一点,我真的很想知道。

关于CouchDB 查看排序规则,一键加入,搜索其他值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5012409/

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