ObjectId
■コレクション内のすべてのドキュメントに一意のキーがない場合に使用します。それらは一意であるため、競合について心配する必要はなく、大規模な展開ではあまり心配することなく適切にシャーディングされます(長所と短所があります。続きを読むこちら
)。
ObjectId
ObjectId
が存在するクライアントのタイムスタンプも含まれます が生成されました(DBサーバーがすべてのキーを生成するように構成されている場合を除く)。これで、お気づきのように、タイムスタンプを使用していくつかの日付操作を実行できます。ただし、Aggregation Frameworkの使用を計画している場合は、ObjectId
を使用できないことがわかります。 現在の任意の日付操作(問題
)。 AFを使用する場合は、日付を含む2番目のフィールドが必要になりますが、残念ながら、ObjectId
とともに二重に保存されます。 の内部値。
_id
生成しているのは一意であるため、ObjectId
を使用する理由はあまりありません。 データ構造内。