Экспорт данных в couchdb при использовании view
Поэтому я новичок в CouchDB, и я пытался написать какую-нибудь программу на Python, которая будет загружать файл JSON, загружать VIEW и возвращать мне значения в массиве.
Я написал вид как if(doc['city.berlin'])
emit(doc['city.berlin'], doc['city.berlin'])
Итак, каковы мои лучшие возможности для извлечения данных в массив?
на данный момент возвращаемые данные в терминале выглядят слишком сложными, так как они возвращают {ID, ключ, значение}. Есть ли простой способ сохранить только значения?
Спасибо
1 ответ
Я предполагаю, что ваши документы выглядят так
{
city: 'berlin',
x: 1,
y: 2
}
Вы можете создать представление, которое индексирует только те документы, которые имеют city
ценность berlin
с такой функцией карты:
function(doc) {
if (doc.city === 'berlin') {
emit(null, null)
}
}
В приведенном выше коде if
оператор выбирает подмножество данных, которое достигает индекса. Более распространенная схема - просто выбрасывать город так:
function(doc) {
emit(doc.city, null)
}
Теперь все ваши данные находятся в индексе, и во время запроса вы можете выбрать, какой город получить данные:
/db/_design/mydesigndoc/_view/myview?key="berlin"
Приведенный выше запрос извлечет идентификаторы документов, в которых ключ индекса (города) соответствует указанному вами значению (берлин).
Добавление include_docs=true
возвращает исходные документы в ответе также:
/db/_design/mydesigndoc/_view/myview?key="berlin"&include_docs=true
Вы также можете добавить один из встроенных редукторов (_count, _sum или _stats) при создании представления для агрегирования данных, например, используя _count Reduce, вы можете получить список всех значений города и их количества с помощью:
/db/_design/mydesigndoc/_view/myview?group=true