{% 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.