{unique:true}
でインデックスを使用する オプション。
// everyone's username must be unique:
db.users.createIndex({email:1},{unique:true});
複数のフィールドにわたってこれを行うこともできます。 このセクションを参照 詳細と例については、ドキュメントをご覧ください。
一意のインデックスにより、インデックス付きフィールドに重複する値が格納されないようにします。つまり、インデックス付きフィールドに一意性を適用します。デフォルトでは、MongoDBはコレクションの作成中に_idフィールドに一意のインデックスを作成します。
null
が必要な場合 一意キーから無視される値の場合は、インデックスもスパースにする必要があります(ここを参照 )、sparse
も追加します オプション:
// everyone's username must be unique,
//but there can be multiple users with no email field or a null email:
db.users.createIndex({email:1},{unique:true, sparse:true});
MongoDBJavaドライバーを使用してインデックスを作成する場合。試してみてください:
Document keys = new Document("email", 1);
collection.createIndex(keys, new IndexOptions().unique(true));