Тайм-аут проблема в CouchDB - PullRequest
0 голосов
/ 11 марта 2019

Мое приложение - это приложение для регистрации, где пользователь заполняет большую регистрационную форму на 100 полей и отправляет ее.Способ хранения данных:

  1. Документ отправки, в котором хранятся идентификатор отправки, имя, адрес электронной почты и дата / время отправки.
  2. Документы значения отправки, которые представляют собой не что иное, как данные каждого поляполе в регистрационной форме.

Когда пользователь заполняет регистрационную форму и отправляет ее, создается 1 документ для отправки с submissionId, и каждое из его полей сохраняется как отдельный документ submissionValue со своимключ, имеющий submissionId, то есть 100 документов submissionValue.Пример документа submissionValue:

 {
  "_id": "0027ec9c-83d1-45a7-bd2c-ee41f4i5d692/citizenship[0].country_of_birth[0].label/1551683896469",
  "_rev": "1-4fdf63cb121e475d96c160b80a0598de",
  "$doctype": "submissionValue",
  "value": "India"
}

Здесь первая часть идентификатора (0027ec9c-83d1-45a7-bd2c-ee41f4i5d692) - это идентификатор submissionId, за которым следует имя ключа.

У меня естьфункция экспорта в CSV, где я сталкиваюсь с проблемой тайм-аута.У меня около 10000 регистраций в моей заявке.Когда я нажимаю кнопку «Экспорт», я передаю все 10000 идентификаторов submissionId, а затем для каждого идентификатора submissionId я вызываю представление, чтобы получить все значения submissionValues.Ниже приведен код для представления:

   function(doc) {
  if(doc.$doctype == "submissionValue" && doc._id.indexOf("/") > 0) {
    var submissionId = doc._id.split("/")[0]
    emit(submissionId , doc);
  }
}

В представлении выше я возвращаю все документы submissionValue для каждой отправки, затем на стороне .NET я группирую записи на основе submissionId и пишув Excel.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...