Ключ CouchDB всегда совпадает - PullRequest
2 голосов
/ 17 января 2011

Я пытаюсь запросить мою CouchDB таким образом, чтобы некоторые поля в документе могли быть символами подстановки, соответствующими любому ключевому запросу.

Пример:

function(doc) {
  emit(doc.some_field, doc);
}

?key=100 будет соответствовать как документ с some_field из 100 и some_field значение как *.

Возможно ли это?Есть ли взломать, чтобы сделать это?

Ответы [ 2 ]

1 голос
/ 17 января 2011

Согласно документации CouchDB вы можете сделать:

?startkey="key"&endkey="key\ufff0"

для соответствия клавиша *.

0 голосов
/ 17 января 2011

Из Couchdb вики :

CouchDB на самом деле хранит [ключ, docid] пара в качестве ключа в ВТКЕЕ. Это означает, что:

  • вы всегда знаете, из какого документа получены ключ и значение (это отображается как поле 'id' в результате просмотра)
  • просмотр строк с одинаковыми ключами сортировка по возрастанию docid.

Так что я не думаю, что подстановочные поля, используемые как часть ключа, возможны, потому что они отсортированы. Предположим, они возможны. Затем, если вы попытаетесь запросить диапазон ключей из представления, строки с подстановочным знаком будут возвращены с любым диапазоном ключей. Это значит, что они везде. Но это невозможно, потому что они отсортированы. То есть строка с подстановочным знаком помещается между парой других строк, одна из которых имеет больший ключ, а другая - меньший.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...