Iは、以下の文書構造を持つ小さなCouchDBのテーブルを有する:CouchDBのバージョン= value2の
{
"_id": "22e5cfffa3d363bb1dd3f2293e002953",
"idRubric": "9bf94452c27908f241ab559d2a0d46c5",
"category": "open",
"yada yada" : "for the rest of the fields"
}
(現在は)4つの可能なカテゴリの値との41個の可能な値が存在しますidRubric。 idRubricとカテゴリが同時に指定された値に一致するドキュメントのみを選択できるビューを作成しようとしています。現在のマップ関数は次のようになります。
{
"_id": "_design/views",
"_rev": "40-97b9c83b8016e4f71738bb64cbe6c754",
"views": {
"byRubricCategory": {
"map": "function (doc) { if (doc.idRubric && doc.category) {emit(doc.idRubric, doc.category); } }"
}
}
}
これは、ieRubricと一致するすべてのドキュメントを表示する配列です。 idRubricをカテゴリに置き換えた場合、そのカテゴリに一致するすべてのドキュメントを取得します。私は結果を[doc.idRubric, doc.category]
と指定しようとしましたが、null値が返されます。 は勧告に従い、私は出力に配列を表示する文書を更新しました:
{
"_id": "_design/views",
"views": {
"byRubricCategory": {
"map": "function (doc) { if (doc.idRubric && doc.category) {emit([doc.idRubric, doc.category], null); } }"
}
}
}
配列にEMITを変更した結果は、私が今、結果として空のセットを得ることです:
{
"total_rows": 16,
"offset": 0,
"rows": [
]
}
マップの目的は、私が望んでいない1つの値にセットを減らすように見えるので、私はreduce関数を使用していません(私の限られた理解で)、私は結果セットを必要とします。 4つの文書を持ち、20-30を持つかもしれません。
私はすでにCouchDBとこのトピックについて20回以上話しましたが、すべてがキー1 ORキー2である複数のキークエリを参照しているように見えます。私は論理的ORではなく論理ANDに到達しようとしています。ありがとう。どのキーが指定されていない
代表値:
{
"total_rows": 16,
"offset": 0,
"rows": [
{
"id": "22e5cfffa3d363bb1dd3f2293e00380a",
"key": [
"9bf94452c27908f241ab559d2a0d46c5",
"close"
],
"value": null
},
{
"id": "22e5cfffa3d363bb1dd3f2293e0045a7",
"key": [
"9bf94452c27908f241ab559d2a0d46c5",
"content"
],
"value": null
},
{
"id": "22e5cfffa3d363bb1dd3f2293e002953",
"key": [
"9bf94452c27908f241ab559d2a0d46c5",
"open"
],
"value": null
},
{
"id": "22e5cfffa3d363bb1dd3f2293e0088a4",
"key": [
"9bf94452c27908f241ab559d2a0d50d6",
"rising"
],
"value": null
}
]
}
迅速な対応に感謝します。私はEMITの値の周りの括弧[]を使用する場合、私は空集合が返さ得る: { "TOTAL_ROWS":16、 "オフセット":0、 "行":[ ] } を角括弧を外しておくと、14個の文書(idRubric値を含むすべての文書)が返されます。あなたのマップ関数をテストするためにコピーしました。何か案は? –
配列を発行する必要があります。 startkey/endkeyを付けずにビューを取得してみてください。また、取得しようとしているURLを投稿することもできます。また、あなたの質問の地図機能を更新してください。エンプセセットを返すもの。 –
Loic:次のcurlコマンドを使用しています:curl http:// localhost:5984/rubric_content/_design/views/_view/byRubricCategory?key =%5B%229bf94452c27908f241ab559d2a0d46c5%22、%22open%22%5D' arrayを出力として指定する場合、結果は空のセットになります。 –