【问题标题】:exporting data in couchdb when using view使用视图时在 couchdb 中导出数据
【发布时间】:2018-06-18 08:34:13
【问题描述】:

所以我是 CouchDB 的新手,我正在尝试编写一些 python 程序来上传 JSON 文件、上传 VIEW 并返回数组中的值。

我将视图写为if(doc['city.berlin']) emit(doc['city.berlin'], doc['city.berlin'])

那么,将数据提取到数组中的最佳可能性是什么?

目前终端中的返回数据看起来太复杂了,因为它正在返回 {ID, key, value}。有没有只保存值的简单方法?

谢谢

【问题讨论】:

    标签: couchdb couchdb-python


    【解决方案1】:

    我会假设你的文件看起来像这样

    {
      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
    

    【讨论】:

      猜你喜欢
      • 2012-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-25
      • 1970-01-01
      相关资源
      最近更新 更多