复制集合中所有文档的字段

问题描述 投票:0回答:1

我希望能够在

UpdateMany
语句中将一个字段复制到另一个字段。

类似这样的:

var updateDef = MongoDB.Driver.Builders<UserStory>
    .Update
    .Set(x => x.SemanticId, x => x.Id);

但是当前的API不支持。

如何使用 Csharp 驱动程序执行类似的操作,即将集合中的所有文档的一个字段复制到另一个字段?我还需要在新字段中生成一个 ObjectId。

mongodb mongodb-.net-driver
1个回答
0
投票

根据我的发现,无法使用正确的集合类型来完成..

必须使用

BsonDocument
:

var collection = _mongo.GetCollection<BsonDocument>("SomCollection");
var updateDefinition = Builders<BsonDocument>.Update.Set("someField", "$otherField");
var result = collection.UpdateMany(FilterDefinition<BsonDocument>.Empty, updateDefinition);
© www.soinside.com 2019 - 2024. All rights reserved.