couchdb:实现连接和视图

vsikbqxv  于 2022-12-09  发布在  CouchDB
关注(0)|答案(1)|浏览(178)

我需要通过使用CouchDB视图和连接来连接Person和Department,从而获得下面的Result。如何实现这一点?

Person: {
    name: 'Parnika',
    city: 'Delhi',
    dept: 'DevOps'
}

Department: {
    name: 'DevOps',
    city: 'Delhi'
}

Result: {
    Person: {
        name: 'Parnika'
        city: 'Delhi',
        Department: {
            name: 'DevOps',
            city: 'Delhi'
        }
    }
}
flseospp

flseospp1#

与其从“如何进行连接”(couchdb中没有关系连接)开始,不如从您希望实现的目标开始。例如,您尝试做的可能是将人员Map到部门。
请尝试对数据进行反规范化处理,以便每个文档都包含关系联接中某行的所有预期数据:

Person: {
    name: 'Parnika'
    city: 'Delhi',
    Department: {
        name: 'DevOps',
        city: 'Delhi'
    }
}

现在,您可以创建一个将www.example.comMap到www.example.com的视图Department.namePerson.name,类似于

function(doc) {
    if (doc && doc.name && doc.Department && doc.Department.name) {
        emit(doc.Department.name, doc.name);
    }
}

此视图可让您查找按部门分组的人员。

相关问题