【问题标题】:What does this sample map function in sample CouchDB Set mean?示例 CouchDB Set 中的这个示例映射函数是什么意思?
【发布时间】:2015-05-24 19:15:33
【问题描述】:

Couchbase 附带大量啤酒。 2ms 的获取时间令人印象深刻,但我不明白以下 map 函数的实际作用:

function(doc, meta) {
  switch(doc.type) {
  case "brewery":
    emit([meta.id]);
    break;
  case "beer":
    if (doc.brewery_id) {
      emit([doc.brewery_id, meta.id]);
    }
    break;
  }
}

我无法将我的大脑包裹在它周围。这个meta 是从哪里来的?

【问题讨论】:

    标签: javascript database mapreduce couchbase


    【解决方案1】:

    我无法将我的大脑包裹在它周围。这个元东西是从哪里来的?

    Couchbase 服务器为每个存储的文档(json 或二进制)补充元数据。在您的视图编辑器中,您可以在“预览随机文档”的右侧窗格中看到元数据。例如,在您问题的屏幕截图中,meta.id 将是“labbat_ontario_breweries_labbat_50”,如右侧所示。

    meta.id 是文档的实际键,它始终存在于任何返回的文档中,包括视图(即使您没有将键值显式包含到视图输出中) 例如例如,此视图仅输出 doc.name,但该视图中的任何返回行仍存在元数据。您可以访问 json 结果中的 meta.id 元素。

    function(doc, meta) {
        emit(doc.name,null);
    }
    

    【讨论】:

      【解决方案2】:

      刚开始使用 couchBase 时我也很困惑

      您指向的代码是 couchbase 中一个非常强大的功能。它允许创建一个能够快速访问视图的预处理数据的视图。

      调用map函数创建视图,在map函数中传递每个文档:

      • meta : 存储文档的元数据,包含过期时间、文档 ID、修订等信息。

      更多信息在这里:

      http://docs.couchbase.com/admin/admin/Views/views-writing.html

      【讨论】:

        猜你喜欢
        • 2021-08-12
        • 1970-01-01
        • 1970-01-01
        • 2021-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多