【问题标题】:Access couch db:s query parameters programmatically以编程方式访问 couch db:s 查询参数
【发布时间】:2013-10-14 22:28:40
【问题描述】:

要查询 couch db 数据库,您可以发送 http GET 请求,格式为

host:5984/db/_design/some_view/_view/view1?key="foo"

要创建一个名为 view1 的简单视图,我可以创建地图

function(doc){
  emit(doc.bar,doc);
}

这将生成一个键值对列表,其中 doc.bar 是键,doc 是值。在这种情况下,它是 db 的子集,其中 doc.bar = "foo"

emit 函数似乎将其参数与通过 URL 请求传递的关键参数进行比较。

我如何从 URL 中获取 key 的值并在它被传递给 emit 之前对其进行检查?

【问题讨论】:

    标签: mapreduce nosql couchdb


    【解决方案1】:

    MapReduce 不能这样工作。

    Map(和reduce)函数不会在每个对象的每个查询中调用。每个更新的对象都会调用它们(在查询时)。

    这意味着,只要“文档”(又名对象)未更改,发出的键和值就会保留在索引中。缓存管理是 MapReduce 如此高效的原因。

    换句话说,不要将索引视为查询结果,而是将其视为所有可能结果的预期。

    在文本框中进一步解释 MapReduce 几乎是不可能的:我建议您关注教程和视频。

    虽然您已了解 MapReduce 的基础知识,但您将学习如何使用 CouchDB 使用 query the index(使用 key,或使用 startkeyendkey),以及如何使用 format the response(如果您使用自定义参数)需要它们)。

    【讨论】:

    • 你是对的。我正是从您发布的消息来源中了解到的。与官方 wiki 搭配的那本书是我迄今为止发现的学习 Couch 的最佳资源。
    猜你喜欢
    • 1970-01-01
    • 2016-05-08
    • 2012-10-15
    • 2018-08-14
    • 1970-01-01
    • 2010-09-05
    • 1970-01-01
    • 1970-01-01
    • 2011-08-07
    相关资源
    最近更新 更多