答えて
いいえ、実際にはOjbectId
に組み込まれているので、あなたが何か良いものがあると思うなら、_id
フィールドのデフォルト値を何でも変更できます。 。 http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/#auto-increment-counters-collection
マルチスレッドISNを」:ここに示されているよう_idsをインクリメントオートを使用する場合は特に、ObjectId
策定デフォルトから離れて移動することを決定する際
しかし、これは大きなしかしで、いくつかの考慮事項がありますそのような大きな問題はfindAndModify
であり、アトミックロックは実際にそれを処理することができますが、最初の問題にヒットしました。 findAndModify
は、最速の機能でも最軽量でもなく、定期的に使用したときに顕著なパフォーマンス低下が見られました。
findAndModify
がなくても、とにかくこれを行うオーバーヘッドも考慮する必要があります。あなたが持っているすべてのインサートについて、追加のクエリを行う必要があります。あなたが挿入したいたびに一意性を問い合わせなければならない一意のIDを持つイメージは、最終的に挿入率がクロールに落ちて、あなたのロックが構築されます。
もちろん、ObjectId
は、挿入前にデータベースに触れることによって独自の一意性をチェックしたり作成したりすることなく、ユニークであることが本当にうまくいくので、このオーバーヘッドはありません。
世界で最悪のアイデアではないと言われていますが、それがあなたのシナリオに合っていると思うなら、それを試してみてください。しかし、あなたが自動インクリメントIDを必要としないなら、 。
あなたはそれを行うことができますが、整数が一意であることを確認する責任があります。
MongoDBは、ほとんどのSQLデータベースのように自動インクリメントフィールドをサポートしていません。新しいデータベースエントリを作成する複数のプロセスやスレッドを持つ分散アプリケーションまたはマルチスレッドアプリケーションを使用する場合は、それらが同じカウンタを使用していることを確認する必要があります。それ以外の場合、2つのスレッドが同じ_idを持つ文書をデータベースに格納しようとします。
これが起こると、そのうちの1つが失敗します。これは、データベースが成功またはエラーを返すのを待つ必要があることを意味します(GetLastErrorを呼び出すか、書き込みの問題をと認識してとします)。これは、データを火災と忘れて送信するよりも時間がかかります。
- 1. MongoDBの型を変更するには?
- 2. timespan変数を整数型に変更する方法は?
- 3. MongoDB MapReduceのmap関数でthis._idにアクセスするには?
- 4. MongodbはドキュメントのObjectIDまたは_id属性を変更しますか?
- 5. laravel mongodb出力時に_idをidに変更するにはどうすればよいですか?
- 6. Node.jsを使って複数のMongoDBオブジェクトを一意の_idで更新する
- 7. のMongoDBとPHPは_idを失い
- 8. 整数型の列をPythonでdatetime型に変換するにはどうすればいいですか?
- 9. MongoDBの結果から_idを削除するには?
- 10. YCSB Mongodb _id
- 11. PostgreSQLの - 親切配列を整数に整数型の列を変更するのに役立ち配列
- 12. (Node.js)mongoDB関数内のグローバル変数を変更するにはどうすればいいですか?
- 13. MongoDBの_idの配列をクエリするには?
- 14. タイプが整数型か浮動小数点型かに基づいてテンプレートメソッドを変更するにはどうすればよいですか?
- 15. MongoDBコンソールで_idで削除
- 16. 整数、私は次のようにMongoDBでコレクションを持っているのMongoDB
- 17. DelphiでGetHashCodeのdouble型を整数に変換する
- 18. mongodbデータベース内のコレクション内のフィールドの型を変更する
- 19. 長整数型ではなく、整数型を整数に逆シリアル化できますか?
- 20. 整数型を金額型に変換するにはどうすればよいですか?
- 21. DataRowView型を整数型に変換するにはどうすればよいですか?
- 22. MongoDB _idフィールドのJquery ajaxパーサエラー
- 23. MongoDBの集約グループの_idは
- 24. 整数型変数にDBNullを渡すことはできますか?
- 25. PostgreSQL:列挙型を整数に変換できますか?
- 26. エラー:CComVariant ::コピーで "悪い変数の型" CComSafeArray
- 27. SQLの整数型の更新
- 28. 整数型の類義語ですか?
- 29. Javaで長整数型を日付に変換する1970年
- 30. ブロックコールバックの引数型を変更する
本当に依存しています。ユニークなID(自動インクリメント)なので、idをユニークに保つために必要なメンテナンスのオーバーヘッドのために1つが存在するため、noの引数が1つあります(他のカウンタコレクションをクエリする必要があります)。挿入する前にすべての_idの一意性をチェックする必要があるのと同じように、最終的には挿入速度が遅くなり、長時間のロックが作成されます。 – Sammaye
ええと、このシンプルな機能のためにDB内にたくさんのアクションがありますか? =( –
もちろん、MongoDBにはサーバー側の自動インクリメントIDがないので、ここではhttp://docs.mongodbを作成するために必要なものを見ることができます。org/manual/tutorial/create-an-auto-incrementing-field/infactこれは、MongoDBがこのタイプのIDをサポートしていない理由の1つです。サーバサイド – Sammaye