创建一个视图,该视图仅返回文档中的值的子集,每个值的键和值都在json字符串中。就像一个给定的视图返回一个文件,如下所示,是否有可能获得一个请求的一些字段信息?谢谢
{
"total_rows":10,
"offset":3,
"rows":[{
"id":"doc1",
"key":"abc123",
"value": {
"_id":"aaaa",
"_rev":"bbb",
"field1":"abc",
"field2":"bcd",
"field3":"cde",
"field4":"123",
"field5":"789",
"field6":"aa@email.com",
"field7":"ttt",
"field8":"iii",
"field9":[{
"field91":"tyui",
"field92":"55555"
}],
"field10"::"0000",
"field11"::"55555",
"field12"::"0030".........
}
}
我只想创建一个只返回以下字段的视图:
{
"field1":"abc",
"field2":"bcd",
"field3":"cde",
"field4":"123",
"field5":"789",
"field6":"aa@email.com",
"field7":"ttt",
"field8":"iii",
"field9":[{
"field91":"tyui",
"field92":"55555"
}]
}
答案 0 :(得分:2)
仅使用选定字段发出新文档的地图功能。例如,让我们仅映射field1(字符串)和field9(数组):
function map(doc) {
emit(doc._id, {
field1: doc.field1,
field9: doc.field9
});
}
在上面的示例中,将使用作为原始文档ID的键来触发每个文档,并且值是您需要的映射字段。 如果您计划稍后添加reduce函数,这将非常有用。
根据您的使用情况,您可能只想发出映射的对象:
function map(doc) {
emit({
field1: doc.field1,
field9: doc.field9
});
}
请参阅http://guide.couchdb.org/draft/views.html 有关构建数据视图的文档非常好,您可以通过试验发现很多..