using MongoDB.Bson;
|
using MongoDB.Driver;
|
using MongoDB.Driver.Linq;
|
// Init.
|
var mongoUrl = new MongoUrl("mongodb://localhost");
|
var settings = MongoClientSettings.FromUrl(mongoUrl);
|
settings.LinqProvider = LinqProvider.V3; // WORKS WITH V2.
|
var client = new MongoClient(settings);
|
var database = client.GetDatabase("default");
|
var collection = database.GetCollection<Model>("Models");
|
|
// Insert document with key.
|
var id = ObjectId.GenerateNewId();
|
var key = "key";
|
var model = new Model(id, new Dictionary<string, string> { [key] = "value" });
|
collection.InsertOne(model);
|
|
// ✅ Update value.
|
collection.UpdateOne(
|
Builders<Model>.Filter.Eq(o => o.Id, id),
|
new UpdateDefinitionBuilder<Model>().Set(o => o.Keys[key], "new value"));
|
|
// ❌ Remove key.
|
collection.UpdateOne(
|
Builders<Model>.Filter.Eq(o => o.Id, id),
|
new UpdateDefinitionBuilder<Model>().Unset(o => o.Keys[key]));
|
|
|
record Model(ObjectId Id, Dictionary<string, string> Keys);
|