Экспорт данных в 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
Другие вопросы по тегам