我在更新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”))
这项工作