いいえ、まったく悪くはありません。実際、組み込みのObjectId
はインデックス内でかなり大きいので、何か良いものがあると思われる場合は、_id
のデフォルト値を変更することを歓迎します。 何にでもフィールド。
しかし、これは大きなしかし 、デフォルトの定式化されたObjectId
から離れることを決定する際には、いくつかの考慮事項があります。 特に、ここに示すように自動インクリメント_idsを使用する場合:https://docs.mongodb.com/v3.0/tutorial/create-an-auto-incrementing-field
findAndModify
なので、マルチスレッドはそれほど大きな問題ではありません。 アトミックロックは実際にそれを処理できますが、最初の問題にぶつかるだけです。 findAndModify
は最速の機能でも最軽量の機能でもありません。定期的に使用すると、パフォーマンスが大幅に低下します。
findAndModify
がなくても、とにかくこれを自分で行うオーバーヘッドを考慮する必要があります。 。挿入ごとに、追加のクエリが必要になります。挿入するたびに一意性を照会する必要がある一意のIDがあると想像してください。最終的に、挿入率はクロールに低下し、ロック時間が増加します。
もちろん、ObjectId
挿入前にデータベースにアクセスして独自の一意性を確認または定式化する必要がなく、一意であることが非常に優れているため、このオーバーヘッドはありません。
それでもinteger_idがシナリオに適していると思われる場合は、それを選択してください。ただし、上記のオーバーヘッドを念頭に置いてください。