gpt4 book ai didi

python - 如何使用复合键查询 couchdb View ?

转载 作者:太空狗 更新时间:2023-10-30 00:57:47 25 4
gpt4 key购买 nike

我有一个 couchdb View “record_by_date_product”,其定义如下:

function(doc) {
emit([doc.logtime, doc.product_id], doc);
}

我正在尝试运行类似于以下内容的查询:

(logtime > fromdate & logtime < todate)  & product_id in (1,2,6)

用这个 View 可以吗?

我也在使用 couchdb python 库来访问 couchdb。这是一个代码片段:

server = couchdb.Server()
db = server['mydb']

results = db.view('_design/record_by_date_product/_view/record_by_date_product')

本页http://packages.python.org/CouchDB/client.html#viewresults指定我们可以使用开始键和结束键。但我无法让它工作。

谢谢

最佳答案

我想我刚刚找到了确切的答案:

设计一个 View “sampleview”,如下所示:

{
"records_by_date_product": {
"map": "function(doc) {\n emit([doc.prod_id, doc.logtime], doc);\n}"
}
}

假设查询参数是:

prod_id in [1,3]
from_date = '2010-01-01 00:00:00'
to_date = '2010-01-02 00:00:00'

然后您将不得不在同一个 View 上运行 2 个单独的查询:

http://localhost:5984/db/_design/sampleview/_view/records_by_date_product?startkey='\["1,2010-01-01%2000:00:00"\]'&endkey='\[1,"2010-01-02%2000:00:00"\]'

http://localhost:5984/db/_design/sampleview/_view/records_by_date_product?startkey='\[2,"2010-01-01%2000:00:00"\]'&endkey='\[2,"2010-01-02%2000:00:00"\]'

请注意,除了在第二个查询中更改了 prod_id 之外,每次都运行相同的查询。结果必须稍后整理。希望这对您有所帮助!

关于python - 如何使用复合键查询 couchdb View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4680713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com