sql >> データベース >  >> NoSQL >> MongoDB

Mongodbは重複エントリを回避します

    {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));
    


    1. MongoDBでの埋め込みドキュメントのフィルタリング

    2. 文字列をobjectIDforeignFieldにルックアップするための回避策が必要です

    3. $ elemMatch(射影)が基準に一致するすべてのオブジェクトを返すようにする

    4. HTMLをMongodbに挿入するにはどうすればよいですか?