Я использую couchDB для хранения некоторых данных, и у меня возникла проблема с удалением документов, которые были вставлены до n дней.Удаление истекших документов в CouchDB
Итак, я стараюсь загрузить документ, который я хочу удалить с помощью представления, и сделать запрос DELETE для всех из них одновременно; но не удалось.
Образец документа:
{
"date":"20160912",
"_id":"1xxxxx",
"name":"namal"
}
Вид функции:
function (doc) {
if(doc.date){
emit(doc.date,doc);
}
}
URL для загрузки документов:
http://localhost:5984/dbx/_design/viewx/_view/date?key=%2220160910%22
УДАЛИТЬ запрос:
curl -X DELETE http://localhost:5984/dbx/_design/viewx/_view/date?key=%2220160910%22
Я знаю, что я могу сделать это за документ, используя _id и _rev, как показано ниже.
curl -X DELETE http://localhost:5984/dbx/1xxxxx?rev="1-1111x1111111x222222x333333"
Но в этом случае мне нужно удалить результирующий документ (ы) один за другим. Я хочу, чтобы удалить список документов (bluk docs) сразу (как я уже упоминал, фактическая requremnet - удалить документы, которые были вставлены до n дней).
Кроме того, я знаю, что лучший способ очистить истекшие данные - установить время истечения срока действия с помощью CouchBase или MongoDb. Но я ищу solutin внутри самой реализации CouchDB.
Примечание: В этом случае я хочу, чтобы они действительно удаляли. Не невидимо.
- Язык: Java 1.7
- ОС: Ubuntu 14,04 64 бит
- CouchDB версия: 1.6.1
Благодарим вас за ответ. Но он не удаляет документ правильно? Это делает его невидимым. Итак, как это может быть хорошо, как удалить? И я хочу, чтобы он фактически удалялся, как я упоминал в проблеме. – namalfernandolk
Это 'delete' в CouchDB lingo. Вы ищете что-то, что удаляет все следы и историю документа? И вы хотите, чтобы такое «постоянное удаление» синхронизировалось? – Kul
Да. Я хочу навсегда удалить их и освободить место – namalfernandolk