#couchdb #collation #composite-key #couchapp
#couchdb #сопоставление #составной ключ #couchapp
Вопрос:
Я безуспешно пытаюсь воспользоваться преимуществами сопоставления представлений в 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»] возвращает только два корневых документа, и это только прямой потомок, но запрос возвращает все (удвоенные) документы, т. е. фильтрация по ключу у меня не работает.
В чем может быть проблема?
Вы можете увидеть базу данных по адресу http://yo.iriscouch.com/_utils/database.html?cats
Затем запрос http://yo.iriscouch.com/cats/_design/app/_view/items?startKey =[«root»] возвращает точно то же самое, что и без каких-либо аргументов, т. Е. похоже, что startKey игнорируется.
Я пробовал startKey = [«root», 0] amp; EndKey = [«root», 2] также безуспешно.
Спасибо.
Ответ №1:
Это ‘startkey’, а не ‘startKey’ (обратите внимание на регистр).
http://wiki.apache.org/couchdb/HTTP_view_API#Querying_Options
Комментарии:
1. Я говорил это не один раз, я хотел бы отдать вам больше одного голоса за это.