2015-03-07 2 views
1

Итак, я пытаюсь переместить данные из одной базы данных в другую. Я уже переместил их, но мне нужно очистить документы, которые я уже переместил из старой базы данных. Я использую объем выполнения ektorp для выполнения массовых операций. Но по какой-то причине я продолжаю получать document update conflict, когда пытаюсь удалить массив, вставив _deleted. Возможно, я ошибаюсь, вот что я сделал.Couch db bulk operations

  1. Извлечь крупным планом с include docs. (По какой-то причине это не работает только с id и rev.)
  2. Затем укажите в поле _deleted поле для каждого документа.
  3. Сообщение с использованием executebulk.

Он работает с некоторыми документами, но продолжает документировать конфликт документов для некоторых документов.

Любое решение/предложения, пожалуйста ..

ответ

2

Это предпочтительный способ удаления документации в объеме:

List<Object> bulkDocs = ... 
MyClass toBeDeleted = ... 

bulkDocs.add(BulkDeleteDocument.of(toBeDeleted)); 

db.executeBulk(bulkDocs); 
+0

Благодаря Хенрик! В любом случае, похоже, что мы должны включать документы и даже для удаления. Я надеялся, что, если мы предоставим только id и rev, он также должен работать. – Vebito

+0

Результирующий json-документ будет содержать только id, rev и _deleted поля –

+0

О ... вы имеете в виду bulkDocs или результирующий документ после удаления .. потому что Im пытается удалить огромные числа и запросы с помощью http-клиента, поэтому, если я действительно включу docs, это просто повредит производительности действительно плохо ... поэтому искал способ свести к минимуму ответ и запросить полезную нагрузку .... спасибо за информацию в любом случае! – Vebito

0

Если вам нужен только способ удаления/обновления документации в объеме и вы не» т нужно обязательно реализовать его в собственное программное обеспечение, вы можете использовать большое couchapp по адресу:

https://github.com/harthur/costco

вы должны загрузить его на свой серв э с couchapp deployment tool, а также использовать функцию как

function(doc) { 
    if(doc.istodelete) // replace this or remove to delete all docs 
     return null; 
}  

Читать instructions и examples

Смежные вопросы