私は、期待どおりに動作しないこのCouchdbビューを持っています。code
、balance
およびsession
に追加しませんparams
:
function(doc) {
var params = doc.initial_url_params; //This is an object with many properties
params["code"] = doc.code;
params["balance"] = doc.balance;
params["session"] = doc.session.session_id;
emit(doc.code, params);
}
一方、この他の実装はトリックを行います:
function(doc) {
var params = {};
params["code"] = doc.code;
params["balance"] = doc.balance;
params["session"] = doc.session.session_id;
for (prop in doc.initial_url_params) {
params[prop] = doc.initial_url_params[prop];
}
emit(doc.code, params);
}
これら2つの実装が同等ではない理由を誰か教えてもらえますか? 私はJavascriptで何か愚かなことをしていますか、それともCouchdbのJavascript実装の特定の制限ですか?
間違いがないように。サンプルの json ドキュメントは次のとおりです。
{
"_id": "207112eaaad136dca7b0b7b1c6356dc4",
"_rev": "3-e02de1f2f269642df98ab19ee023569b",
"session_loaded": true,
"balance": 20.48,
"code": "05428",
"initial_url_params": {
"page_id": "212"
},
"session": {
"session_id": "207112eaaad136dca7b0b7b1c6356dc4",
"init": true
}
}