-
-
Save DoomyTheFroomy/4483536 to your computer and use it in GitHub Desktop.
Using jquery couchdb plugin to delete docs from a database (1.6.1)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var targetDB = 'db' | |
var blacklist = ['_design/'] | |
var ddoc = 'test' | |
var viewName = 'emittedDocsToBeDeleted' | |
var toBeDeletedDocs = {} | |
var skip = 0 | |
var limit = 5000 | |
var totalRows = 0 | |
deleteDocuments(skip, limit) | |
function deleteDocuments (skip, limit) { | |
$.couch.db(targetDB).view(ddoc + '/' + viewName, { | |
limit: limit, | |
skip: skip, | |
include_docs: true, | |
'success': function (allDocs) { | |
if (totalRows === 0) totalRows = allDocs.total_rows | |
toBeDeletedDocs['docs'] = allDocs.rows.map(function (row) { | |
var doc = row.doc | |
return row.doc | |
}) | |
// deleteDoc(toBeDeletedDocs[0], toBeDeletedDocs) | |
bulkRemove(toBeDeletedDocs) | |
}}) | |
} | |
function bulkRemove (docs) { | |
$.couch.db(targetDB).bulkRemove(docs, { | |
success: function () { | |
if (skip > totalRows) return | |
skip = skip + limit | |
// limit += 100 | |
deleteDocuments(skip, limit) | |
} | |
}) | |
} | |
function deleteDoc (doc, toBeDeletedDocs) { | |
$.couch.db(targetDB).removeDoc(doc, { | |
success: function (doc) { | |
console.log(toBeDeletedDocs) | |
toBeDeletedDocs.shift() | |
if (toBeDeletedDocs.length > 0) { | |
deleteDoc(toBeDeletedDocs[0], toBeDeletedDocs) | |
} else { | |
if (skip > totalRows) return | |
skip = skip + limit | |
// limit += 100 | |
deleteDocuments(skip, limit) | |
} | |
} | |
}) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment