Во-первых, в функции просмотра карты вы испускаете три вещи:
emit(doc.id, [value], mins);
Что не должно быть. Как документировано , вам необходимо испускать пары ключ / значение (ну, конечно, ключ или значение могут быть массивом многих вещей):
Функции карты принимают один документ в качестве аргумента и
(необязательно) emit () пары ключ / значение , которые хранятся в представлении.
Согласно тому, что вы говорите:
Мне нужно представление, которое возвращает все данные в "price_changes".
Насколько я понимаю, вам нужна следующая функция карты:
function (doc) {
var mins, value;
if (doc.price_changes) {
for (mins in doc.price_changes) {
value = doc.price_changes[mins];
emit(mins, [value, doc._id]);
}
}
}
И он возвращает:
$ curl -k -X GET https://admin:****@192.168.1.106:6984/sample-repl/_design/price/_view/price
{"total_rows":11,"offset":0,"rows":[
{"id":"so_q","key":"0min","value":[0,"so_q"]},
{"id":"so_q","key":"120min","value":[0,"so_q"]},
{"id":"so_q","key":"150min","value":[0,"so_q"]},
{"id":"so_q","key":"15min","value":[0,"so_q"]},
{"id":"so_q","key":"180min","value":[0,"so_q"]},
{"id":"so_q","key":"210min","value":[0,"so_q"]},
{"id":"so_q","key":"240min","value":[0,"so_q"]},
{"id":"so_q","key":"270min","value":[0,"so_q"]},
{"id":"so_q","key":"30min","value":[0,"so_q"]},
{"id":"so_q","key":"60min","value":[0,"so_q"]},
{"id":"so_q","key":"90min","value":[0,"so_q"]}
]}
Я не уверен, что приведенный выше результат соответствует вашим ожиданиям, пожалуйста, дайте мне знать, если я ошибаюсь.
Спасибо! Просто интересно, как бы я вернулся, скажем, первые 3 (например, 0 минут,
15 минут, 30 минут)
Чтобы получить первые 3, вы можете использовать limit
параметр запроса, подобный этому, как вы можете видеть, он вернет первые 3:
$ curl -k -X GET https://admin:****@192.168.1.106:6984/sample-repl/_design/price/_view/price?limit=3
{"total_rows":11,"offset":0,"rows":[
{"id":"so_q","key":"0min","value":[0,"so_q"]},
{"id":"so_q","key":"120min","value":[0,"so_q"]},
{"id":"so_q","key":"150min","value":[0,"so_q"]}
]}
В общем, вы можете поиграться с параметрами запроса , чтобы получить то, что вы хотите из представления / индекса.