【问题标题】:Couchdb view, finds with conditionCouchdb 视图,查找条件
【发布时间】:2018-09-01 05:17:03
【问题描述】:

我是 Couchdb 的新手,我不知道他们的设计。 我知道我们必须使用 emit() 来制作搜索键。 如何在这些条件下发出请求视图(如 SQL)?

Where A = 'b' && Date >= 2010 && Date <= 2020

【问题讨论】:

    标签: view couchdb


    【解决方案1】:

    您需要发出一个多变量键,例如

    # map
    function(doc) {
        if (doc.A && doc.Date) {
            emit([doc.A, doc.Date], 1)
        }
    } 
    
    # reduce
    _count
    

    然后你可以像这样查询它

    curl 'https://host.com/DB/_design/DDOC/_view/VIEW?reduce=false&include_docs=true&inclusive_end=true&startkey=\["a",2010\]&endkey=\["a",2020\]'
    

    你可以在我做的数据库上自己试一试,开放阅读。

    curl 'https://skruger.cloudant.com/stackex/_design/examples/_view/by-a-date?reduce=false&include_docs=true&inclusive_end=true&startkey=\["a",2010\]&endkey=\["a",2020\]'
    

    【讨论】:

      【解决方案2】:

      如果您使用的是 CouchDB 2.X,则可以使用 Mango 作为替代方案。我发现它更易于使用和理解。

      {
          "A":"b",
          "$and":[
              {
                  "Date": {
                      "$gte":2010
                  }
              },
              {
                  "Date":{
                      "$lte":2020
                  }
              }
          ]
      }
      

      您可能希望为此查询建立一个索引,使其具有与其他替代响应一样快的速度。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多