View 和Couchdb呆上几个小时。。。创建视图时,如何获取关键点?
我正在努力学习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}); } 上面的函数工
{
"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);
}
除非你有一长串的钥匙,否则这似乎太过分了