| {% 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.findIndexes(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.findIndexes(); |
| 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.findIndexes().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. |