C# 如何在Mongo端更新文档?

C# 如何在Mongo端更新文档?,c#,mongodb,C#,Mongodb,如何在mongo端执行Regex.Replace?或者这只能发生在客户身上 以下Replace是否适用于Mongo侧 const string EmptyTag = "<$1></$1>"; var updatedJobInfo = Regex.Replace(document.SerializedBackgroundJobInfo, Pattern, EmptyTag); 使用(var cursor=wait jobInfoDocuments.FindAsync(fi

如何在mongo端执行
Regex.Replace
?或者这只能发生在客户身上

以下
Replace
是否适用于Mongo侧

const string EmptyTag = "<$1></$1>";
var updatedJobInfo = Regex.Replace(document.SerializedBackgroundJobInfo, Pattern, EmptyTag);
使用(var cursor=wait jobInfoDocuments.FindAsync(filter))
{
while(等待cursor.MoveNextAsync())
{
var batch=cursor.Current;
foreach(批量var文档)
{
var newInfo=Regex.Replace(document.SerializedBackgroundJobInfo,Regex,EmptyTag);
//在一个请求中应用多个操作。
添加(新的updateModel(Builders.Filter.Eq(“_id”),document.JobId),
Builders.Update.Set(“SerializedBackgroundJobInfo”,newInfo));
}

您可以使用
javascript
执行此操作,但请确保修复
过滤器以使用mongo shell

db.records.find(filter).forEach(函数(doc){

var pattern=/那么C#呢?我不熟悉C#mongo驱动程序,但我只是想通过C#找到一种方法,向mongo发送自然的
javascript
命令。请看我更新的问题。你认为它在mongo方面有效吗?同样,我不熟悉C#mongo驱动程序,所以我无法回答。但我几乎肯定你应该
save
和not
InsertOneAsync
。由于Insert可能只会在您想要编辑文档时插入其他文档,因此此正则表达式在JS中无法正常工作,它应该是
var pattern=/Ouch!显然应该在发布赏金之前将此问题作为重复问题结束。请参阅,这意味着“循环”而不是在接受的答案中对字段重命名进行轻微的重组。这里要做的唯一实际的事情是您已经得到的关于Regex.replace的答案在MongoDB服务器端不受支持,因此如果您有特殊需要,必须在客户端完成。
const string EmptyTag = "<$1></$1>";
var updatedJobInfo = Regex.Replace(document.SerializedBackgroundJobInfo, Pattern, EmptyTag);
using (var cursor = await jobInfoDocuments.FindAsync<JobInfoRecord>(filter))
{
      while (await cursor.MoveNextAsync())
      {
             var batch = cursor.Current;
             foreach (var document in batch)
             {
                 var newInfo = Regex.Replace(document.SerializedBackgroundJobInfo, regex, EmptyTag);

                  // Applying several operations within the one request.
                  operationList.Add(new UpdateOneModel<JobInfoRecord>(Builders<JobInfoRecord>.Filter.Eq("_id", document.JobId),
                                                                       Builders<JobInfoRecord>.Update.Set("SerializedBackgroundJobInfo", newInfo)));
              }