【问题标题】:Python cloudant query "_id" by regex正则表达式的Python cloudant查询“_id”
【发布时间】:2020-12-24 15:24:21
【问题描述】:

我是 ibm cloudant 的新手,我正在为我的 web 应用程序使用 python API for cloudant。 有什么方法可以使用“_id”上的正则表达式从托管在 IBM cloudant 实例上的沙发数据库中检索文档? 我已阅读 python-cloudant 文档,但找不到任何内容。

请帮忙。 谢谢。

【问题讨论】:

    标签: couchdb cloudant couchdb-lucene python-cloudant


    【解决方案1】:

    如果您考虑底层 API,则可以在 Cloudant Query 中使用 $regex 运算符。但是,它不会使用索引,因此性能会非常糟糕,因为它会扫描整个数据库。如果可能,请尝试安排您的 id,以便您可以使用范围查询找到所需的子集。给定一个看起来像这样的数据库:

    % curl https://skruger.cloudant.com/aaa/_all_docs
    {"total_rows":4,"offset":0,"rows":[
    {"id":"aaron","key":"aaron","value":{"rev":"1-..."}},
    {"id":"adam","key":"adam","value":{"rev":"1-..."}},
    {"id":"ben","key":"ben","value":{"rev":"1-..."}},
    {"id":"charlie","key":"charlie","value":{"rev":"1-..."}}
    ]}
    

    我们可以检索所有 id 仅以“a”开头的文档,

    % curl 'https://skruger.cloudant.com/aaa/_all_docs?startkey="a"&endkey="b"'
    {"total_rows":4,"offset":0,"rows":[
    {"id":"aaron","key":"aaron","value":{"rev":"1-..."}},
    {"id":"adam","key":"adam","value":{"rev":"1-..."}}
    ]}
    

    【讨论】:

    • 感谢您的回复。我的 _id 是一个字符串,不知道在这种情况下是否可以使用范围。
    • 我已经编辑了答案以显示字符串范围查询示例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-15
    • 2013-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多