View 和Couchdb呆上几个小时。。。创建视图时,如何获取关键点?

View 和Couchdb呆上几个小时。。。创建视图时,如何获取关键点?,view,key,couchdb,View,Key,Couchdb,我正在努力学习Couchdb,有一个非常新的问题。我有以下两份文件 { "type": "type1", "code": "10", "name": "ten", }, { "type": "type2", "code": "20", "name": "twenty", } 我创建了一个视图,如下所示 function(doc) { emit(doc.type, {"code":doc.code, "name":doc.name}); } 上面的函数工

我正在努力学习Couchdb,有一个非常新的问题。我有以下两份文件

{
   "type": "type1",
   "code": "10",
   "name": "ten",
},
{
   "type": "type2",
   "code": "20",
   "name": "twenty",
}
我创建了一个视图,如下所示

function(doc) {
  emit(doc.type, {"code":doc.code, "name":doc.name});
}
上面的函数工作正常,但我希望获得密钥,而不是像下面的示例那样编写,这样做不起作用:

function(doc) {
  emit(doc.type, {key(doc.code):doc.code, key(doc.name):doc.name});
}
我该怎么做?

简单解决方案 我不确定这是你想要的,但你可以这样做:

function(doc) {
  emit(doc.type, doc);
}
然后所有字段(包括
类型
,但也包括
\u id
\u rev
…)都可用,而无需显式键入它们

全解
键(doc.code):doc.code
在我看来并不比
“code”:doc.code
好,但如果你真的想避免重复,你可以:

function(doc) {
  var elem = {}, keys = ["code", "name"];
  for (var i in keys) {
    elem[keys[i]] = doc[keys[i]];
  }
  emit(doc.type, elem);
}
除非你有一长串的钥匙,否则这似乎太过分了