View Couchdb视图,使用条件查找

View Couchdb视图,使用条件查找,view,couchdb,View,Couchdb,我是Couchdb的新手,我不知道他们的设计。 我知道我们必须使用emit()来生成用于搜索的键。 如何在具有这些条件(如SQL)的视图上发出请求 其中A='b'&&Date>=2010&&Date您需要发出一个多变量键,比如 # map function(doc) { if (doc.A && doc.Date) { emit([doc.A, doc.Date], 1) } } # reduce _count 然后您可以像这样查询它 cur

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


其中A='b'&&Date>=2010&&Date您需要发出一个多变量键,比如

# 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\]'

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

{
    "A":"b",
    "$and":[
        {
            "Date": {
                "$gte":2010
            }
        },
        {
            "Date":{
                "$lte":2020
            }
        }
    ]
}
您可能希望为该查询构建一个索引,使其与其他备选响应一样快速

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