Облачный запрос Python _id с помощью регулярного выражения

Я новичок в ibm cloudant и использую API python для cloudant для своего веб-приложения. Можно ли каким-либо образом получить документы из базы данных моего дивана, размещенной на экземпляре IBM Cloudant, с помощью регулярного выражения для _id? Я прочитал документацию по python-cloudant, но ничего не нашел.

Пожалуйста помоги. Спасибо.


person Jor_El    schedule 05.09.2020    source источник


Ответы (1)


Если вы рассматриваете базовый API, вы можете использовать $regex в Cloudant Query. Однако он не будет использовать индекс, поэтому производительность будет довольно ужасной, поскольку будет сканироваться вся база данных. Если возможно, попробуйте расположить свои идентификаторы так, чтобы вместо этого вы могли найти нужное подмножество с помощью запроса диапазона. Учитывая БД, которая выглядит так:

% 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-..."}}
]}

мы можем получить все документы с идентификатором, начинающимся только с,

% 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-..."}}
]}
person xpqz    schedule 05.09.2020
comment
Спасибо за ответ. Мой _id - это строка, интересно, можно ли в этом случае использовать диапазон. - person Jor_El; 05.09.2020
comment
Я отредактировал свой ответ, чтобы показать пример запроса диапазона строк. - person xpqz; 07.09.2020