0

什么是基于正则表达式列表从视图中排除文档的最佳方法。例如,我想排除 doc.issue.name 包含与正则表达式列表匹配的值的任何内容。

例如排除列表:[/foo/, /bar/]

{
"_id": "1",
"issue": {
    "name": "foo"
}

{
"_id": "2",
"issue": {
    "name": "bar"
}

{
"_id": "3",
"issue": {
    "name": "fred"
}

所以根据上面的文档,只返回doc.issue.name = "fred" 的文档

4

1 回答 1

1

好的,所以在这里回答我自己的问题,以防其他人需要做这种事情!

基于以下文件:

{
"_id": "1",
"issue": {
"name": "foo"
}

{
"_id": "2",
 "issue": {
"name": "bar"
}

{
"_id": "3",
"issue": {
"name": "fred"
}

这个地图功能:

function(doc) {
 var reg_exps = [/foo/g, /bar/g];
 for (r in reg_exps){
   if (doc.name.match(reg_exps[r])){
     return;
   }
 }
 emit(doc.name, 1);
}

只会返回名为“fred”的文档

于 2012-09-18T19:05:55.950 回答