结合JavaScript对象我有这个CouchDB的认为没有做什么,我的期望。它不添加code
,balance
和session
到params
:CouchDB中
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);
}
谁能告诉我,为什么这两种实现都没有当量?我是用Javascript来做一些愚蠢的事情还是Couchdb的Javascript实现的一些特定限制?
为了清楚起见。下面是一个示例JSON DOC:
{
"_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
}
}
只是为了清楚起见,你能不能给doc.initial_url_params对象数据的样本? – Kristian 2013-03-01 23:01:07
请看到我的编辑 – joscas 2013-03-01 23:04:52
也许'initial_url_params'是[冻结](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/freeze)/ [密封](https://开头developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/seal)? – 2013-03-01 23:10:18