如何在MongoDb中简单地执行更新/替换多个文档操作

如何在MongoDb中简单地执行更新/替换多个文档操作,mongodb,mongodb-query,mongodb-.net-driver,Mongodb,Mongodb Query,Mongodb .net Driver,这可能是您可以执行的最常见和最基本的数据库操作之一。然而,如何在MongoDb中执行此操作是难以捉摸的 C#驱动程序中有一个updatemayasync方法。但我能找到的只是这样的例子 以下操作将更新违规行为大于4的所有文档,并设置标记以供审阅: try { db.restaurant.updateMany( { violations: { $gt: 4 } }, { $set: { "Review" : true } } ); } catch (e) {

这可能是您可以执行的最常见和最基本的数据库操作之一。然而,如何在MongoDb中执行此操作是难以捉摸的

C#驱动程序中有一个
updatemayasync
方法。但我能找到的只是这样的例子

以下操作将更新违规行为大于4的所有文档,并设置标记以供审阅:

try {
   db.restaurant.updateMany(
      { violations: { $gt: 4 } },
      { $set: { "Review" : true } }
   );
} catch (e) {
   print(e);
}
坦率地说,我不知道你们是如何构建你们的应用程序的,但我们的组织永远不会嵌入域逻辑,比如在我们的数据库查询逻辑中有多少违规行为构成了审查。就像我能找到的所有关于这个操作的例子一样

我们的选择充其量只是为此使用某种批量api,对于这样一个简单的操作来说,这似乎是不必要的。让批量api执行一千次单独的替换对我来说似乎是无效的,但我可能错了

在其他存储技术和更成熟的API中,执行此操作所需的所有代码是(示例实体框架)


这是作为Mongo项目的功能请求跟踪的吗?

批量API可以处理它,请参见下面的代码:

            var updates = new List<WriteModel<CosmosDoc>>();
            foreach (var doc in docs)
            {
                updates.Add(new ReplaceOneModel<CosmosDoc>(doc.Id, doc));
            }
            await MongoDb.DocsCollection.BulkWriteAsync(updates, new BulkWriteOptions() { IsOrdered = false });
var updates=newlist();
foreach(单据中的var单据)
{
添加(新的ReplaceOneModel(doc.Id,doc));
}
等待MongoDb.docscolection.BulkWriteAsync(更新,新的BulkWriteOptions(){IsOrdered=false});
            var updates = new List<WriteModel<CosmosDoc>>();
            foreach (var doc in docs)
            {
                updates.Add(new ReplaceOneModel<CosmosDoc>(doc.Id, doc));
            }
            await MongoDb.DocsCollection.BulkWriteAsync(updates, new BulkWriteOptions() { IsOrdered = false });