デザイン ドキュメントのステータスを計算する map/reduce 関数を探しています。以下に、現在のデータベースのドキュメントの例を示します。
{
"_id": "0238f1414f2f95a47266ca43709a6591",
"_rev": "22-24a741981b4de71f33cc70c7e5744442",
"status": "retrieved image urls",
"term": "Lucas Winter",
"urls": [
{
"status": "retrieved",
"url": "http://...."
},
{
"status": "retrieved",
"url": "http://..."
}
],
"search_depth": 1,
"possible_labels": {
"gender": "male"
},
"couchrest-type": "SearchTerm"
}
status
キーを取り除き、URLのステータスから計算したいと思います。私の現在のby_status
ビューは次のようになります。
function(doc) {
if (doc['status']) {
emit(doc['status'], null);
}
}
いくつか試してみましたが、実際には何も機能しません。今、私のMap Function
見た目は次のようになります。
function(doc) {
if(doc.urls){
emit(doc._id, doc.urls)
}
}
と私Reduce Function
function(key, value, rereduce){
var reduced_status = "retrieved"
for(var url in value){
if(url.status=="new"){
reduced_status = "new";
}
}
return reduced_status;
}
その結果、私はどこでも取得されますが、これは間違いなく正しくありません。
問題を絞り込もうとしましたvalue
が、配列ではないようです。次を使用すると、Reduce Function
どこでも長さ 1 になります。データベースに 12 個のドキュメントがあり、それぞれに 20 ~ 200 個の URL が含まれているため、これは不可能です。
function(key, value, rereduce){
return value.length;
}
代替テキスト http://img.skitch.com/20100316-qeawxgd5pru8d5i6bprygcsmhf.jpg
私は何を間違っていますか?(コードを書いてほしいのはわかっていて罪悪感を感じていますが、現在はデータベースからデータを取得した後、Ruby でステータスの計算を行っています。データベース)