如何在pouchDB中查询复杂的密钥



如果我要发出get请求,我会执行以下操作:

https://myserver.com/sometestdb/_design/sortJob/_view/index?limit=100&reduce=false&startkey=["job_price"]&endkey=["job_price",{}]

对于类似以下的地图查询:

function(doc) {
if (doc.data.type === "job") {
emit(["job_ref", doc.data.ref], null);
emit(["job_price", doc.data.price], null);
}
}

如何使用pouchDb查询复制查询?我试过一些关于开始和结束键的方法,但没有成功:

{
include_docs: true,
startkey: 'job_price',
endkey: 'job_price,{}'
}
{
include_docs: true,
startkey: 'job_price',
endkey: 'job_priceuffff'
}

这两个都返回0个结果,而我使用的链接产生了预期的结果。

注意:我可以确认数据存在于我的pouchDB中,因为我已经使用pouch-find插件进行了查询,但我正在尝试各种技术来查看哪个更快。

编辑:根据文档中的复杂键部分,我应该能够做到以下几点:

{
include_docs: true,
startkey: '['job_price']',
endkey: '['job_price',{}]'
}

但结果是:

没有行可以匹配您的密钥范围,请反转您的start_key和end_key或设置{降序:true}

但是我应该能够得到这样的结果,并且不想要descending: true

好的,所以是我对文档的阅读关闭了。

当构建开始/结束键时,您需要传递数组,而不是将数组作为字符串传递(我认为是pouchDB,然后是eval'd。

这是工作查询:

{
include_docs: true,
startkey: ['job_price'],
endkey: ['job_price', {}]
}

张贴这个答案,而不是删除问题,因为它可能会帮助其他人。

最新更新