过滤couchdb链接文档
我正在使用以下映射函数从组中获取“链接”到的用户文档:过滤couchdb链接文档,couchdb,Couchdb,我正在使用以下映射函数从组中获取“链接”到的用户文档: function(doc) { var i, id; if(doc.type == 'group' && !doc.deletedAt) { for (i = 0; i < doc.users.length; ++i) { id = doc.users[i]; emit(doc._id, {'_id': id}); } emit(doc._id, null
function(doc) {
var i, id;
if(doc.type == 'group' && !doc.deletedAt) {
for (i = 0; i < doc.users.length; ++i) {
id = doc.users[i];
emit(doc._id, {'_id': id});
}
emit(doc._id, null);
}
}
用户看起来像:
{
"_id": "8f87c698f119044890c5e788cd0028c1",
"_rev": "5-441da938e50fb692da55d74231f614c2",
"empId": "",
"type": "user",
"disabled": false,
"username": "fred",
"firstName": "Fred",
"lastName": "Jones",
...other fields
}
map函数可以工作,但我需要过滤掉具有“deletedAt”属性集的用户文档。这在映射功能中是可能的吗?如果不更改文档的结构,则无法执行此操作。您不应该在组文档中存储用户数组,而应该在用户文档中存储组数组。然后,映射函数可以如下所示:
function(doc {
var i;
if(doc.type == 'user' && !doc.deletedAt) {
for (i = 0; i < doc.groups.length; ++i) {
emit(doc.groups[i], null);
}
}
}
函数(doc{
var i;
if(doc.type=='user'&&!doc.deletedAt){
对于(i=0;i
更改文档结构会在应用程序的其他地方带来一系列问题,因此不幸的是,这不是我的选择。
function(doc {
var i;
if(doc.type == 'user' && !doc.deletedAt) {
for (i = 0; i < doc.groups.length; ++i) {
emit(doc.groups[i], null);
}
}
}