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 に答える