C#MongoDB更新文档问题

时间:2018-06-19 21:11:30

标签: c# mongodb

我在更新MongoDB C#中的嵌套文档的字段时遇到问题。

我具有以下类型结构

class Job
{
  public int Id {get; set;}

  public JobMetadata Metadata {get; set;}
  ...... other fields .....
}

class JobMetadata
{
   public string Name {get; set;}

   public string Description{get; set;}

   public int CreatedBy{get; set;}

   public int ModifyedBy{get; set;}

   public DateTime CreatedOn{get; set;}

   public DateTime ModifyedOn{get; set;}
}

现在,我想为给定作业更新一些元数据字段。我使用以下代码

var filter = Builders<Job>.Filter.Eq(job => job.Id, id);
var update = Builders<Job>.Update.Set(job  => job.Metadata.Name, newName).Set(job  => job.Metadata.Description, newDescription).Set(job  => job.Metadata.ModifyedBy, newModifyedBy).Set(job  => job.Metadata.ModifyedOn, newModifyedOn);
var result = await collection.UpdateOneAsync(filter, update);

结果包含IsAcknowledged = true,IsModifiedCountAvailable = true和ModifiedCount = 1,但实际文档未更新。

如果仅使用一组,则文档将更新。但是从我看到的official doc来看,我们可以使用乘法集。 (我也尝试使用CurrentDate(“ lastModified”))

这项工作

0 个答案:

没有答案