{% include anchor.html edit="true" title="Delete a document" hash="delete_document"%}
{% highlight js %}
db.remove(doc, [options], [callback])
{% endhighlight %}
Or:
{% highlight js %}
db.remove(docId, docRev, [options], [callback])
{% endhighlight %}
Deletes the document. `doc` is required to be a document with at least an `_id` and a `_rev` property. Sending the full document will work as well.
See [filtered replication](http://pouchdb.com/api.html#filtered-replication) for why you might want to use `put()` with `{_deleted: true}` instead.
#### Example Usage:
{% include code/start.html id="delete_doc" type="callback" %}
{% highlight js %}
db.get('mydoc', function(err, doc) {
if (err) { return console.log(err); }
db.remove(doc, function(err, response) {
if (err) { return console.log(err); }
// handle response
});
});
{% endhighlight %}
{% include code/end.html %}
{% include code/start.html id="delete_doc" type="async" %}
{% highlight js %}
try {
var doc = await db.get('mydoc');
var response = await db.remove(doc);
} catch (err) {
console.log(err);
}
{% endhighlight %}
{% include code/end.html %}
{% include code/start.html id="delete_doc" type="promise" %}
{% highlight js %}
db.get('mydoc').then(function(doc) {
return db.remove(doc);
}).then(function (result) {
// handle result
}).catch(function (err) {
console.log(err);
});
{% endhighlight %}
{% include code/end.html %}
#### Example Response:
{% highlight js %}
{
"ok": true,
"id": "mydoc",
"rev": "2-9AF304BE281790604D1D8A4B0F4C9ADB"
}
{% endhighlight %}
You can also delete a document by just providing an `id` and `rev`:
{% include code/start.html id="delete_doc3" type="callback" %}
{% highlight js %}
db.get('mydoc', function(err, doc) {
if (err) { return console.log(err); }
db.remove(doc._id, doc._rev, function(err, response) {
if (err) { return console.log(err); }
// handle response
});
});
{% endhighlight %}
{% include code/end.html %}
{% include code/start.html id="delete_doc3" type="async" %}
{% highlight js %}
try {
var doc = await db.get('mydoc');
var response = await db.remove(doc._id, doc._rev);
} catch (err) {
console.log(err);
}
{% endhighlight %}
{% include code/end.html %}
{% include code/start.html id="delete_doc3" type="promise" %}
{% highlight js %}
db.get('mydoc').then(function(doc) {
return db.remove(doc._id, doc._rev);
}).then(function (result) {
// handle result
}).catch(function (err) {
console.log(err);
});
{% endhighlight %}
{% include code/end.html %}
You can also delete a document by using `put()` with `{_deleted: true}`:
{% include code/start.html id="delete_doc2" type="callback" %}
{% highlight js %}
db.get('mydoc', function(err, doc) {
if (err) { return console.log(err); }
doc._deleted = true;
db.put(doc, function(err, response) {
if (err) { return console.log(err); }
// handle response
});
});
{% endhighlight %}
{% include code/end.html %}
{% include code/start.html id="delete_doc2" type="async" %}
{% highlight js %}
try {
var doc = await db.get('mydoc');
doc._deleted = true;
var result = await db.put(doc);
} catch (err) {
console.log(err);
}
{% endhighlight %}
{% include code/end.html %}
{% include code/start.html id="delete_doc2" type="promise" %}
{% highlight js %}
db.get('mydoc').then(function(doc) {
doc._deleted = true;
return db.put(doc);
}).then(function (result) {
// handle result
}).catch(function (err) {
console.log(err);
});
{% endhighlight %}
{% include code/end.html %}