微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sql – 在CouchDB中执行WHERE-IN查询

我想通过一次调用CouchDB来查询特定文档的列表.

使用sql我会做类似的事情

SELECT *
FROM database.table
WHERE database.table.id
IN (2,4,56);

通过_id或其他字段在CouchDB中执行此操作的方法是什么?

解决方法

您需要使用视图键 query parameter获取具有指定集合中的键的记录.
function(doc){
    emit(doc.table.id,null);
}

然后

GET /db/_design/ddoc_name/_view/by_table_id?keys=[2,56]

要同时检索文档内容,只需在您的请求中添加include_docs = True查询参数即可.

UPD:您可能有兴趣通过此参考ID检索文档(2,56).认情况下,CouchDB使用它们所属的文档查看“映射”发出的密钥.要调整此行为,您可以使用linked documents技巧:

function(doc){
    emit(doc.table.id,{'_id': doc.table.id});
}

现在请求

GET /db/_design/ddoc_name/_view/by_table_id?keys=[2,56]&include_docs=True

将返回带有id字段的行,该字段指向包含2,4和56个键的文档,以及包含引用文档内容的doc.

原文地址:https://www.jb51.cc/mssql/78235.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐