Couchdb 视图,查找条件

Posted

技术标签:

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

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

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

【问题讨论】:

【参考方案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
            
        
    ]

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

【讨论】:

以上是关于Couchdb 视图,查找条件的主要内容,如果未能解决你的问题,请参考以下文章

CouchDb - 防止 couchDb 提供视图

获取couchdb里key对应的value

从 couchdb 视图访问会话信息

CouchDB:在视图中代表 NVL()

CouchDB:视图中的过滤函数

CouchDB 视图可访问,但不会运行查询