如何在CouchDB中检测_find结束?

d8tt03nd  于 2022-12-09  发布在  CouchDB
关注(0)|答案(1)|浏览(169)

使用CouchDB(Windows上的3.1.1),我想使用书签机制迭代/db/_find的结果。它运行得很好,但我不知道如何结束循环。代码类似于:

while true
do
    curl -s -X POST $dburl/db/_find -H "Content-Type: application/json" \
    -d '{"selector":{bla bla},"bookmark":'$b'}' > result.dat

    Extract bookmark from result.dat and assign it to b variable
done

如何结束这样的循环?即使没有更多的文档要返回,结果也包含一个有效的书签,并且curl总是成功。
谢谢你的帮助!
马里奥

41zrol4v

41zrol4v1#

感谢RamblinRose的建议!以下是一个非常有效的解决方案:

n=200
b=null

while [ $n = 200 ]
do
    x=`curl -s -X POST $db/kb/_find -H "Content-Type: application/json" \
    -d '{"selector": {bla bla},"limit":200,"bookmark":'$b'}' | tee -a $tmp | jq '.bookmark,(.docs | length)'`

    a=($x)

    b=${a[0]}
    n=${a[1]}
done

相关问题