pouchdb исключает проектные документы при использовании автоматически сгенерированного UUID

Когда я использую собственный выбранный ключ, я знаю, находится ли первый символ до или после '_' (строчные клавиши, целочисленные клавиши или, с другой стороны, клавиши верхнего регистра), но когда я использую автоматически сгенерированный ключ, я не знаю.

Итак, как я могу исключить все, что начинается с «_design»?

db.allDocs({include_docs: true, startkey: ???});

person velop    schedule 08.09.2014    source источник


Ответы (1)


Пара решений:

1) Не используйте автоматически сгенерированные ключи. или, если вам действительно нужно, чтобы они были случайными, сделайте их чем-то вроде 'myprefix_' + Math.random();

2) Если проигнорировать (1), то единственным решением будут два отдельных запроса:

db.allDocs({include_docs: true, endkey: 'design_'})

db.allDocs({include_docs: true, startkey: 'design_\uffff'})

Это немного неудобно, поэтому я открыл эту задачу на Couch.

person nlawson    schedule 09.09.2014
comment
Мне пришлось сделать это недавно, и я считаю, что подчеркивание в приведенном выше примере находится не в том месте. Вместо этого я использовал только db.allDocs({ include_docs: true, startkey: '_design￿' }) - person redgeoff; 14.03.2016
comment
Я не понимаю ни одного из предложенных решений. То, что я сделал и сработало для меня, было database.allDocs({ include_docs: true, endkey: "_design" }). Что-то не так? - person Danielo515; 04.09.2016
comment
@ Danielo515 Да, это очень неправильно, нельзя сказать, что проектная документация будет последней документацией. Для меня было около 3-4 документов после последнего документа по дизайну, поэтому, если вы используете endkey, как вы, он пропускает эти последние документы. - person GifCo; 02.11.2016