Конфликт couchDB при предоставлении собственного идентификатора с большими вставками с помощью _bulk_docs

Тот же код прекрасно работает, когда автокресло автоматически генерирует UUID. Я начинаю с новой полностью пустой базы данных, но продолжаю получать это

error: conflict 
reason: Document update conflict

Повторяю, я публикую новые документы в пустой базе данных, поэтому не знаю, как получить конфликты обновления, когда ничего не обновляется. Даже более странные конфликтующие документы по-прежнему отображаются в БД только с одной ревизией, но в целом записи отсутствуют.

Я пытаюсь вставить около 38 000 записей с _bulk_docs партиями по 100. Я получаю эти записи (по 100 за раз) с сервера RETS, у каждой записи уже есть уникальный идентификатор, который я хочу использовать для couchDB _id вместо их UUID-х. Я использую обещанную библиотеку, чтобы получить записи и аксиомы, чтобы вставить их в диван. После получения первой партии из 100 я запускаю этот код, чтобы добавить _id к каждой из 100 записей перед вставкой

let batch = [];
batch = records.results.map((listing) => {
     let temp = listing;
     temp._id = listing.ListingKey;
     return temp;
});

Затем вставьте:

axios.post('http://127.0.0.1:5984/rets_store/_bulk_docs', { docs: batch })

Это все внутри функции, которую я вызываю рекурсивно.

Я знаю, что этого, вероятно, будет недостаточно, чтобы увидеть проблему, но я подумал, что начать здесь. Я точно знаю, что это как-то связано с моей картой () и добавлением _id = ListingKey

Спасибо!

0 ответов

Другие вопросы по тегам