{% include anchor.html edit="true" title="Delete index" hash="delete_index" %}
{% highlight js %}
db.deleteIndex(index [, callback])
{% endhighlight %}
Delete an index, remove any orphaned design documents, and clean up any leftover data on disk.
{% include alert/start.html variant="info"%}
{% markdown %}
**pouchdb-find plugin needed:** This API requires the `pouchdb-find` plugin. See
[Mango queries](/guides/mango-queries.html) for installation instructions.
{% endmarkdown %}
{% include alert/end.html%}
#### Example Usage:
{% include code/start.html id="delete_idx" type="callback" %}
{% highlight js %}
db.deleteIndex({
"ddoc": "_design/idx-0f3a6f73110868266fa5c688caf8acd3",
"name": "idx-0f3a6f73110868266fa5c688caf8acd3",
"type": "json",
"def": {
"fields": [
{ "foo": "asc" },
{ "bar": "asc" }
]
}
}, function (err, result) {
if (err) { return console.log(err); }
// handle result
});
{% endhighlight %}
{% include code/end.html %}
{% include code/start.html id="delete_idx" type="async" %}
{% highlight js %}
try {
var result = await db.deleteIndex({
"ddoc": "_design/idx-0f3a6f73110868266fa5c688caf8acd3",
"name": "idx-0f3a6f73110868266fa5c688caf8acd3",
"type": "json",
"def": {
"fields": [
{ "foo": "asc" },
{ "bar": "asc" }
]
}
});
} catch (err) {
console.log(err);
}
{% endhighlight %}
{% include code/end.html %}
{% include code/start.html id="delete_idx" type="promise" %}
{% highlight js %}
db.deleteIndex({
"ddoc": "_design/idx-0f3a6f73110868266fa5c688caf8acd3",
"name": "idx-0f3a6f73110868266fa5c688caf8acd3",
"type": "json",
"def": {
"fields": [
{ "foo": "asc" },
{ "bar": "asc" }
]
}
}).then(function (result) {
// handle result
}).catch(function (err) {
console.log(err);
});
{% endhighlight %}
{% include code/end.html %}
#### Example Response:
{% highlight js %}
{ "ok": true }
{% endhighlight %}
Note that the easiest way to do this is to locate the index you want to delete using [`getIndexes()`](#list_indexes).
For instance, here is how you would delete the second index from that list (which should be the
one after the built-in `_all_docs` index):
{% include code/start.html id="delete_idx2" type="callback" %}
{% highlight js %}
db.getIndexes(function (err, indexesResult) {
if (err) { return console.log(err); }
db.deleteIndex(indexesResult.indexes[1], function (err, result) {
if (err) { return console.log(err); }
// handle result
});
});
{% endhighlight %}
{% include code/end.html %}
{% include code/start.html id="delete_idx2" type="async" %}
{% highlight js %}
try {
var indexesResult = await db.getIndexes();
var result = await db.deleteIndex(indexesResult.indexes[1]);
} catch (err) {
console.log(err);
}
{% endhighlight %}
{% include code/end.html %}
{% include code/start.html id="delete_idx2" type="promise" %}
{% highlight js %}
db.getIndexes().then(function (indexesResult) {
return db.deleteIndex(indexesResult.indexes[1]);
}).then(function (result) {
// handle result
}).catch(function (err) {
console.log(err);
});
{% endhighlight %}
{% include code/end.html %}
**Notes:**
* You don't need to provide a `_rev` when deleting an index.
* The associated design doc is automatically deleted, assuming it only contains one index.
* There is no need to call [`viewCleanup`](#view_cleanup) to clean up any leftover data. `deleteIndex()` does this automatically for you.