我希望能够在
UpdateMany
语句中将一个字段复制到另一个字段。
类似这样的:
var updateDef = MongoDB.Driver.Builders<UserStory>
.Update
.Set(x => x.SemanticId, x => x.Id);
但是当前的API不支持。
如何使用 Csharp 驱动程序执行类似的操作,即将集合中的所有文档的一个字段复制到另一个字段?我还需要在新字段中生成一个 ObjectId。
根据我的发现,无法使用正确的集合类型来完成..
必须使用
BsonDocument
:
var collection = _mongo.GetCollection<BsonDocument>("SomCollection");
var updateDefinition = Builders<BsonDocument>.Update.Set("someField", "$otherField");
var result = collection.UpdateMany(FilterDefinition<BsonDocument>.Empty, updateDefinition);