Mongo Db驱动程序C#用于更新的聚合

Mongo Db驱动程序C#用于更新的聚合,c#,mongodb,C#,Mongodb,如何通过C#driver为集合中的所有文档从另一个现有字段(numerlong)的值创建一个新字段(字符串)? 使用Mong Shell没有问题: db.getCollection("MyCollection").updateMany( { }, [{ $set: { recordId: { $toString: "$id" } } }] ) Mongo驱动程序具有更新的定义和管道定义。它们之间不兼容。这里有一种方法可以合并C#driver的更新+管道: var stage=newbs

如何通过C#driver为集合中的所有文档从另一个现有字段(numerlong)的值创建一个新字段(字符串)? 使用Mong Shell没有问题:

db.getCollection("MyCollection").updateMany(
  { },
  [{ $set: { recordId: { $toString: "$id" } } }]
)

Mongo驱动程序具有更新的定义和管道定义。它们之间不兼容。

这里有一种方法可以合并C#driver的更新+管道:

var stage=newbsondocument{{“$set”、newbsondocument{{“recordId”、newbsondocument{{{“$toString”、“$id”}}};
var pipeline=PipelineDefinition.Create(stage);
...
Builders.Update.Pipeline(管道)

还应该提到的是,对于稳定的MongoDB驱动程序的最新版本2.10.4,似乎无法通过更新查询使用多个管道阶段或将更新定义与管道定义相结合。这种情况会产生bson数组,MongoDB驱动程序无法通过更新查询处理该数组。
var stage = new BsonDocument { { "$set", new BsonDocument { { "recordId", new BsonDocument { { "$toString", "$id" } } } } } };
var pipeline = PipelineDefinition<BsonDocument, BsonDocument>.Create(stage);
...
Builders<BsonDocument>.Update.Pipeline(pipeline)