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

公式C#ドライバーを使用したMongoDBでのアップサーティング

    バージョン2 MongoDB C#ドライバーの場合、IsUpsertを設定する必要があります 書き込みコマンドのフラグ。この例では、ドキュメント全体をアップサートします。

    var newDoc = new BsonDocument { { "_id", 123 }, { "someKey", "someValue" } };
    var result = await collection.ReplaceOneAsync(
                    filter: new BsonDocument("_id", 123),
                    options: new ReplaceOptions { IsUpsert = true },
                    replacement: newDoc);
    

    バージョン1 MongoDB C#ドライバーのは、Save内にこのロジックを実装します 指図。

    var newDoc = new BsonDocument { { "_id", 123 }, { "someKey", "someValue" } };
    collection.Save(newDoc);
    

    Saveメソッドは、InsertとUpdateを組み合わせたものです。 ドキュメントのIdメンバーに値がある場合、それは既存のドキュメントであると見なされ、Saveはドキュメントに対してUpdateを呼び出します(実際に新しいドキュメントである場合に備えて、Upsertフラグを設定します)。それ以外の場合は、新しいドキュメントであると見なされ、新しく生成された一意の値を最初にIdメンバーに割り当てた後、SaveがInsertを呼び出します。

    参照:http://mongodb.github.io/mongo-csharp-driver/1.11/driver/#save-tdocument-method

    注:ただし、これにはIdフィールドの適切なマッピングが必要です。詳細については、こちらをご覧ください:http://mongodb.github.io/mongo-csharp-driver/1.11/serialization/#identifying-the-id-field-or-property



    1. MongoCredentialおよび未分類のMongoDb例外の認証の例外

    2. MongoDB $ sin

    3. MongoDB$type集約パイプライン演算子

    4. mongorestoreは、個別の引数ではなく、単一のurl引数を取ることができますか?