我有一个以下类型的json对象:
{
"contentClass": "Class",
"owner": "Rambo",
"links": {
"Vehicle": "aaaaa", "Vehicle2":"bbbbb"
},
"Date": {
"extendedTypeName": "Date and time",
"type": "DATE",
"name": "Date",
"defaultValue": null,
"value": "2013-08-09T08:07:00.000Z",
"position": 2,
"attributeName": "Date"
}
}
所以要通过匹配日期和其中一个链接字段(vehicle或vehicle1)来获取所有记录,我创建了以下视图:
function(doc) {
if(doc.contentClass == 'Class') {
if(doc.links) {
for (var linkedTo in doc.links) {
emit([doc.Date.value, doc.links[linkedTo]], null);
}
}
}
}
在我交换emit函数中的值之前,此函数无效:
emit([doc.links[linkedTo], doc.Date.value ], null);
有谁能告诉我这个的原因。还有更好的观点。 提前谢谢。
答案 0 :(得分:0)
使用emit()时,第一个参数表示索引的键。 如果使用startKey和endKey调用视图,则这两个值应与索引键(相同顺序)匹配。
例如
[doc.links[linkedTo], doc.Date.value ]
是索引键,因此你的startKey和endKey应该始终使用相同的格式(linkedTo首先跟着日期)。
此外,如果您使用降序参数进行查询,请不要忘记反转startKey和endKey。