Подстановочные знаки в представлениях с CouchDB? - PullRequest
7 голосов
/ 07 сентября 2010

Можно ли использовать подстановочные знаки в представлениях в CouchDB?Например, допустим, у меня есть база данных, в которой есть команды, возраст игроков, средние значения игроков и пол игроков.Тем не менее, возраст игроков может быть неизвестен - они могут быть из Доминиканской Республики или еще чего-нибудь.Поэтому я хочу использовать вид с функцией карты, которая может принимать не возраст игрока.Если я хочу получить игрока с самым высоким средним показателем в команде независимо от возраста или с конкретным возрастом, как мне это сделать, если я хочу использовать составные ключи?Например, допустим, что моя функция выброса карты выглядит примерно так:

emit([doc.team, doc.gender, doc.age], doc.average);

Что мне делать, если я хочу передать ключ, чтобы сузить его, но при этом учитывать игроков, у которых нетвведен возраст, поэтому вместо:

http://127.0.0.1:5984/savings/_design/players/_view/average?key=["Yankees","male",8]

выполняется что-то, включающее подстановочный знак, такой как этот, чтобы получить средние значения независимо от возраста:

http://127.0.0.1:5984/savings/_design/players/_view/average?key=["Yankees","male",*]

Можно ли написать представлениев CouchDB сделать что-то подобное?Или мне нужно написать несколько представлений и обработать их отдельно?

Спасибо,
Бен

Ответы [ 2 ]

13 голосов
/ 31 августа 2013

Вы можете указать startkey и endkey и использовать «подстановочный знак» {}, пустой объект JavaScript:

http://127.0.0.1:5984/savings/_design/players/_view/average?startkey=["Yankees","male",0]&endkey=["Yankees","male",{}]
7 голосов
/ 07 сентября 2010

Подстановочный знак невозможен, но вы можете указать startkey и endkey:

http://127.0.0.1:5984/savings/_design/players/_view/average?startkey=["Yankees","male",0]&endkey=["Yankees","male",999]
...