我会假设你的文件看起来像这样
{
city: 'berlin',
x: 1,
y: 2
}
您可以创建一个视图,该视图仅索引具有 city 值为 berlin 的文档,使用如下映射函数:
function(doc) {
if (doc.city === 'berlin') {
emit(null, null)
}
}
在上面的代码中,if 语句正在选择到达索引的数据子集。更常见的模式是像这样简单地发射城市:
function(doc) {
emit(doc.city, null)
}
现在您的所有数据都在索引中,在查询时您可以选择要检索哪个城市的数据:
/db/_design/mydesigndoc/_view/myview?key="berlin"
上述查询将检索索引键(城市)与您提供的值(柏林)匹配的文档的 id。
添加 include_docs=true 也会在响应中检索原始文档:
/db/_design/mydesigndoc/_view/myview?key="berlin"&include_docs=true
您还可以在创建视图以聚合数据时添加内置缩减程序之一(_count、_sum 或 _stats),例如使用 _count reduce,您可以获得 city 的所有值及其计数的列表:
/db/_design/mydesigndoc/_view/myview?group=true