在MongoDB c#driver(2.0+)中我们可以在执行和updateManyAsync时进行upsert吗? This示例有助于UpdateOne,但我正在寻找适用于updateMany的东西。
使用updateMany时,Upsert工作正常:
var options = new UpdateOptions { IsUpsert = true };
var result = await collection.UpdateManyAsync(filter, update, options);
以下是在C#.Net核心中使用UpdateMany的更完整示例:
BostadsUppgifterMongoDbContext context = new BostadsUppgifterMongoDbContext(_configuration.GetConnectionString("DefaultConnection"), _configuration["ConnectionStrings:DefaultConnectionName"]);
var residenceCollection = context.MongoDatabase.GetCollection<Residence>("Residences");
residenceCollection.UpdateMany(x =>
x.City == "Stockholm",
Builders<Residence>.Update.Set(p => p.Municipality, "Stoholms län"),
new UpdateOptions { IsUpsert = false }
);
如果IsUpsert
设置为true,则在未找到匹配项时将插入文档。