3
我是CouchDB的新手,並且只是試圖評估其在常見任務中的用處。其中一項任務就是生成報告。我的問題是這樣的:如果我有一個文件的結構是這樣的:用於報告目的的「拼合」文檔層次結構
{
"_id": "29763f342ab34fd7b579fd4546aaed93",
"_rev": "3-f56dccaa214f3e9fce1e1e3e32e710a2",
"client_id": "sse",
"outcomes": [
{
"contact": "phone",
"type": "phone_outbound",
"attempt": "1",
"provider_id": "123456789",
"status_outbound": "noanswer"
},
{
"contact": "phone",
"type": "phone_outbound",
"attempt": "1",
"provider_id": "123456789",
"status_outbound": "noanswer"
}
]
}
和地圖功能是這樣的:
function(doc) {
for(i=0;i<doc.outcomes.length;i++)
{
emit(null, {'client_id':doc.client_id,'outcome':doc.outcomes[i]});
}
}
結果每次生成的行我得到的是:
{client_id: "sse", outcome: { contact: "phone", type: "phone_outbound",
attempt: "1", provider_id: "123456789", status_outbound: "noanswer" }}
而不是
{client_id: "sse", contact: "phone", type: "phone_outbound",
attempt: "1", provider_id: "123456789", status_outbound: "noanswer"}
看到額外的'結果:'和第一個例子中的括號輸出?那就是我不想要的。顯然我的觀點是錯誤的,但我無法找到如何實現我的目標。任何人都可以協助關鍵需要保持爲空。
我沒有按名稱引用每個字段的原因,即doc.contact是我想利用它的無模式性質。如果我爲「結果」添加一個額外的字段,我希望能夠報告它而不明確地將其添加到地圖功能。
完美!感謝marc! – jdee 2010-02-06 18:19:14