CouchDB композитный ключ / просмотр сортировки не работает - PullRequest
1 голос
/ 10 ноября 2011

Я пытаюсь получить преимущества сопоставления представлений в CouchDB безуспешно, может кто-нибудь проверить, что не так в моем случае?

Во-первых, я опираюсь на http://www.cmlenz.net/archives/2007/10/couchdb-joins

Затем я хочу реализовать дерево, связанное parent_id, например:

|- Li
 |- test
  |- tester

, которое в CouchDB:

{"_id":"root","name":"Li","completed":true},
{"_id":"102ef7e2e99db3983a3bb60a490015db","parent_id":"root","name":"test","completed":false},
{"_id":"102ef7e2e99db3983a3bb60a4900209e","parent_id":"102ef7e2e99db3983a3bb60a490015db","name":"tester","completed":false}

Итак, у меня определено следующее представление:

items : {
    map : function(doc){
        emit([doc._id, 0], doc);
        emit([doc.parent_id, 1], doc);
    }
}

И ожидаемый запрос для startKey = ["root"] возвращает только два корневых документа, и это только прямой дочерний элемент, но запрос возвращает все (дублированные) документы, т.е. фильтрация по ключу не работает для меня.

В чем может быть проблема?

Вы можете увидеть DB в http://yo.iriscouch.com/_utils/database.html?cats

Тогда запрос http://yo.iriscouch.com/cats/_design/app/_view/items?startKey=[%22root%22] вернет точно так же, как и без каких-либо аргументов, то есть похоже, что startKey игнорируется.

Я тоже безуспешно пробовал startKey = ["root", 0] & endKey = ["root", 2].

Спасибо.

1 Ответ

2 голосов
/ 10 ноября 2011

Это 'startkey', а не 'startKey' (примечание).

http://wiki.apache.org/couchdb/HTTP_view_API#Querying_Options

...