Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
过滤couchdb链接文档_Couchdb - Fatal编程技术网

过滤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);
    }
  }
}