ensureIndex()
が存在しない場合は、実際にコレクションを作成することがあります。しかし、インデックスは常にすべてのフィールドではなく、いくつかのフィールドにあります。つまり、{ name:1 }
のインデックスを確保して、そのコレクションに文書を追加すると、インデックスがさらに機能します。私はスキーマを持っていないことを知っています、RDBMSの世界から来て、私は確信しています。 :)私は私のウェブサイトが始まるときにインデックスを作成したいが、最初はデータベースが空である。インデックスを確保する前にデータを取得する必要はありませんが、それは正しいですか?存在しないコレクションでensureIndexを呼び出すことはできますか?
10
A
答えて
9
ensureIndex
まだ存在しない場合はコレクションを作成します。インデックスがカバーするプロパティを持たないドキュメントを追加しても、そのインデックスを使用してそれらのドキュメントを見つけることはできません。 1.7.4より前のバージョンでは、インデックスがあるプロパティが見つからないドキュメントは、そのプロパティを持つようにインデックスされますが、null値になります。 1.7.4以降のバージョンでは、これらのオブジェクトをまったく含まない疎なインデックスを作成することができます。違いはわずかですが、状況によっては重大な場合もあります。
場合によっては、アプリケーションの起動時にインデックスを作成することはお勧めできません。新しいバージョンをデプロイして起動時に新しいインデックスを追加する状況を考えてみましょう。開発では小さなデータベースしかないので気づかないでしょうが、実稼働環境ではデータベースが膨大になり、インデックスを追加するには多くの時間がかかります時間の。インデックスの作成中にアプリがハングし、リクエストを処理できません。バックグラウンドフラグをtrueに設定してインデックスを作成することもできます(構文は使用するドライバによって異なります)。ほとんどの場合、手動でインデックスを追加する方がよいでしょう。そうすれば、インデックスを更新する前に考える必要があります。
関連する問題
- 1. PropertyUtils.copyPropertiesはいつ呼び出すことができますか?
- 2. Service.onStartCommandでstopSelf()を呼び出すことはできますか?
- 3. cfscriptでカスタムタグを呼び出すことはできますか?
- 4. GJSでGdk.Seat.grab()を呼び出すことはできますか?
- 5. プリミティブでdeleteを呼び出すことはできますか?
- 6. rootViewControllerでメソッドを呼び出すことはできますか?
- 7. C#でオブジェクトを呼び出すことはできますか?
- 8. Javaでprintlnを呼び出すことはできますか?
- 9. DAOはDAOを呼び出すことはできますか?
- 10. ViewDidUnloadが存在しないときにReleaseDesignerOutletsを呼び出すタイミング
- 11. シリウスは存在しないメソッドを呼び出すようです
- 12. なぜこの呼び出しはあいまいですか?
- 13. jQueryで別のAJAX呼び出しの中でAJAX呼び出しを行うことはできますか?
- 14. [super loadView]を呼び出すことはできますか?
- 15. マクロはプリプロセッサコマンドを呼び出すことができますか?
- 16. 私はプライベートメソッドを呼び出すことができますか?
- 17. ラムダがアレクスキルを呼び出すことはできますか?
- 18. ensureIndexとは何ですか?
- 19. Instruments Leaksは存在しないメソッド呼び出しを示します
- 20. C++システムコールでtskillを呼び出すことができない
- 21. builtins.TypeError:Twistedで 'NoneType'オブジェクトを呼び出すことができない
- 22. 関数呼び出し後にパイプ演算子でreturnを呼び出すことはできますか?
- 23. wso2 esbの呼び出しメディエーターを使用してWebサービスを呼び出すことはできますか?
- 24. 異なるが現在実行中のプロセスで関数を呼び出すことはできますか?
- 25. 端末からAPIゲートウェイエンドポイントを呼び出すことはできますが、BraintreeのコンソールからAPIゲートウェイエンドポイントを呼び出すことはできますか?
- 26. C#で関数呼び出しをリッスンすることはできますか(つまり、C#関数呼び出しをイベントとして扱いますか)?
- 27. 定期的なAJAX呼び出しをPHPのみで呼び出すことができます
- 28. xmlから新しいベクトルアセットを呼び出すことはできません
- 29. Groovy getProperties()は、存在しない属性に対してgetterを1000回以上呼び出すことを呼び出します。
- 30. Response.Redirectをページコールバックで呼び出すことはできません
私はASP.NET MVCと公式のC#ドライバを使用していますが、技術的には問題はないと感じています。興味深いと思うが、私はコマンドラインから 'ensureIndex'を呼び出す方法を見つける必要があります。 –
mongoシェルを通してロードされたJSスクリプトから 'ensureIndex'を呼び出すことができるはずです。 –
'mongo db_name script.js'でJavaScriptファイルを実行できます。このファイルには、Mongoコンソールに入力できるほとんどのものが含まれています。 – Theo