디자인 문서에서 상태를 계산하는 map/reduce 함수를 찾고 있습니다. 아래에서 현재 데이터베이스의 예제 문서를 볼 수 있습니다.CouchDB에서 해시 배열을 매핑/축소하십시오.
{
"_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;
}
결과를 확실히 바로하지 않은 모든 곳에서 검색 얻을 것입니다.
나는 문제를 좁히려고했는데 다음을 사용할 때 이 배열이 아닌 것 같다. Reduce Function
내 데이터베이스에 12 개의 문서가 있기 때문에 어느 곳에서나 길이 1을 얻을 수 없다. 200 개 URL을
function(key, value, rereduce){
return value.length;
}
alt text http://img.skitch.com/20100316-qeawxgd5pru8d5i6bprygcsmhf.jpg
에 내가 잘못 뭐하는 거지? (나는 당신이 나를 위해 코드를 작성하고 죄책감을 느낀다는 것을 알고 있지만, 지금은 데이터베이스에서 데이터를 가져온 후에 루비에서 상태의 계산을 수행한다. 이미 올바른 데이터를 얻는 것이 좋을 것이다. 데이터베이스)
무엇 JSON.stringify (값)을 반환합니까? (JSON은 파이어 폭스 3.5 이상의 네이티브 윈도우 객체입니다.) – Alsciende