Skip to content

Instantly share code, notes, and snippets.

@DoomyTheFroomy
Forked from StephanU/removeDocsFromCouchdb.js
Last active June 19, 2017 12:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save DoomyTheFroomy/4483536 to your computer and use it in GitHub Desktop.
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)
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