私はMongoでコレクションを作成し、このコレクションにドキュメントを追加した後、コレクションを削除するとensureIndex()
を使用して、このコレクションのドキュメントの番号フィールドにインデックスを作成します。インデックス?MongoDBでは、コレクションが削除されると、インデックスも自動的に削除されますか?
答えて
短い回答:はい。
インデックスがコレクションドロップにドロップしています。索引を再作成する必要があります。
コレクションを削除しないで、コレクション内のすべてのアイテムを削除することをお勧めします。db.collection_name.remove({})
より多くのリソースが必要になりますが、インデックスは残しておきます。実際には、すべてのインデックスデータを削除する必要があります。そのため、コレクション全体を削除し、その後にインデックスを再作成することがより好ましい理由です。
コレクションを削除すると、すべてのインデックスが削除される可能性があります。コレクションを再作成するときは、明示的にまたは暗黙的に新しいドキュメントを追加する必要があります。 _id
のデフォルトのインデックスが自動的に作成されます。
インデックスがすでに存在する場合、同じコレクションに対してensureIndex()を複数回呼び出すことに何らかの害があることは理解できますか? – raffian
害がありません。マイナーなパフォーマンスのインパクトは、あなたが保証しようとしているインデックスが既に存在するかどうかを確認するために影響します。 –
私は、これを10個のインデックスを持つコレクションで行いましたが、手動で再作成する必要はありませんでした。ドロップを達成し、モンゴシェルで、次の3行のインデックスを再作成することができます。
var indexes = db.collection.getIndexKeys().splice(1)
db.collection.drop();
indexes.forEach(function(el){ db.collection.ensureIndex(el, {background:true}); })
これは、ユニークまたはスパースインデックスを処理するのに十分スマートではないですが、私はそれが使用してサポートすることはかなり簡単だろうと思います代わりにgetIndexes()の出力私はそれが必要ではなかったので、私はそれをしなかった。
splice(1)は、_idのインデックスを削除するだけです。自動的に作成されるためです。
多くのありがたいですが、 '{background:true}'はインデックスを消去しました。 –
- 1. MySQLでテーブルを削除するとインデックスも削除されますか?
- 2. EventBusスティッキイベントは、サブスクライバメソッドで自動的に削除されますか?
- 3. iOSアプリでドキュメントディレクトリは自動的に削除されますか?
- 4. ユーザーはADグループから自動的に削除されます
- 5. elasticsearchの文書は自動的に削除されますか?
- 6. 完了後、SKActionは自動的に削除されますか?
- 7. Elasticsearchインデックス(またはすべてのインデックス)を削除すると、実際のデータも削除されますか?
- 8. 部分的なファイルアップロードが自動的に削除される
- 9. レディスキーが自動的に削除されています
- 10. Cakephpのクッキーは常に自動的に削除されます
- 11. グループが削除されてもファブリックベータグループエイリアスが削除されない
- 12. ダウンロードしたファイルは自動的に削除されます
- 13. メニュー項目は自動的に削除されます。#wordpress
- 14. ハイパーリンクを削除するとハイパーリンクも削除されます
- 15. サブクラスを削除すると、親も削除されます。
- 16. R.javaが自動的に削除されました:Android
- 17. 1つのコレクションから削除されたアイテムは、暗黙的に2番目のコレクションからも削除されます。なぜですか?
- 18. SQLiteの挿入行が自動的に削除される
- 19. PHPファイルが自動的に削除される
- 20. SFTPアップロードされたファイルがサーバから自動的に削除される
- 21. "X-Powered-By"ヘッダーを削除するとHTTPレスポンスから "Server"ヘッダーが自動的に削除される
- 22. アプリケーションを削除するとドキュメントフォルダが削除されますか?
- 23. をすると、ファイルがインデックスから削除されますか?
- 24. 動的テキストボックスが削除されない
- 25. コアデータデータベース自体が削除されます
- 26. Python 3.4:一時ファイルが自動的に削除されない
- 27. JavaFXPortsが自動的に削除された組み込み
- 28. * Design.csファイルは自動的にリセットされ、手動で書かれたコードは削除されますか?
- 29. MongoDBは自動的に文書を削除します
- 30. アクティブになってから自動的にクラスが削除されます
空のコレクションにインデックスを作成できますか? – raffian
はいできます。コレクションは、インデックスを作成するときに作成されます。 –
'大きなコレクションで' remove() 'に時間がかかることがあります。 'drop()'ははるかに高速ですが、既に指摘したように、すべてのインデックスを削除するという欠点があります。 – dcrosta