Запрос CouchDB для получения валюты (USD) из поля Key в данных Json, хранящихся в CouchDB - PullRequest
0 голосов
/ 12 апреля 2019

Мне нужно получить остаток на счете в валюте (например, только в долларах США) из данного документа JSON, хранящегося в couchDB

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

{"_id": "ID_000000000", "_rev": "45-0ffa69047a93df6fe71656f5a7aa8681", "recordID": "32123", "currencyData": {"1000104183USD": 100, "9000282526INR": 300,2340282526GBP ": 0}," status ":" ACTIVE "," ~ version ":" 3213 "}

Требуется фильтр или запрос, который даст мне данные, основанные на валюте USD, INR или GBP

1 Ответ

0 голосов
/ 12 апреля 2019

Этого можно добиться, создав представление:

function (doc) {
  for (var cur in doc.currencyData) {
    if (doc.currencyData.hasOwnProperty(cur)) {
      emit([doc._id, cur], 1)
    }
  }
}

Затем можно отфильтровать представление с помощью start_key & end_key, чтобы выбрать набор данных и необходимую валюту.

Без фильтра: GET /yourDB/_design/myView/_view/byCurrency

enter image description here

Отфильтровано для USD: GET /yourDB/_design/myView/_view/byCurrency?start_key=["ID_000000000","1000104183USD"%20]&end_key=["ID_000000000",%20"1000104183USD"] enter image description here

...