gpt4 book ai didi

CouchDB:是否可以访问过滤器功能内的链接文档?

转载 作者:行者123 更新时间:2023-12-02 03:41:17 25 4
gpt4 key购买 nike

在联系人管理应用中,每个用户都有自己的数据库。当用户希望与他人共享某些类别的联系人时,后端将启动复制。每个联系人都是自己的文档,但也有各种子文档,例如便笺和约会。

这是一个例子...

联系方式:

{
"_id": 123,
"type": "contact",
"owner": "jimmy",
"category": "customer",
"name": "Bob Jones",
"email": "bob@example.com"
}

注意:

{
"_id": 456,
"type": "note",
"owner": "jimmy",
"contact_id": 123,
"timestamp": 1383919278,
"content": "This is a note about Bob Jones"
}

假设 Jimmy 想与销售经理 Kevin 分享他唯一的客户,而他的个人联系人保持私密。 当笔记通过复制过滤器时,是否可以访问链接联系人的类别字段?

或者我是否必须在联系人的每个子项中复制类别字段?我宁愿不必这样做,因为每个联系人可能有很多 child ,每次类别更改时我都必须手动更新。

下面是一些过滤函数的伪代码:

function(doc, req)
{
if(doc.type == “contact”) {
if(doc.category == req.query.category) {
return true;
}
}
else if(doc.contact_id) {
if(doc.contact.category == req.query.category) {
return true;
}
}
return false;
}

如果可行,请说明如何操作。谢谢!

最佳答案

还有一些其他的选择。

有一个 not-so-well-known JOIN trick in CouchDB .然而,您将不得不共享 MapReduce View 的结果,而不是使用复制——不幸的是,您可以使用 View 作为复制的过滤器。如果您正在使用 Cloudant(免责声明:我受雇于 Cloudant),您可以使用 chained-MapReduce 将结果输出到另一个数据库,然后您可以从中复制...

此外,我认为这个关于文档结构的 SO 帖子/答案和这个连接技巧可能会有所帮助:Modeling relationships on CouchDB between documents?

关于CouchDB:是否可以访问过滤器功能内的链接文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19861554/

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