У меня проблема при попытке обновить свойство в списке встроенных документов.Свойство, для которого я пытаюсь выполнить частичное обновление, - это «SelectedDecision» в классе «CaseTaskDecision».
public class Case
{
[BsonId]
public ObjectId InternalId { get; set; }
[BsonElement(elementName: "casetasks")]
public List<CaseTask> CaseTasks { get; set; }
}
public class CaseTask
{
[BsonId]
public ObjectId InternalId { get; set; }
[BsonElement(elementName: "caseTaskDecision")]
public CaseTaskDecision CaseTaskDecision { get; set; }
}
public class CaseTaskDecision
{
[BsonId]
public ObjectId InternalId { get; set; }
[BsonElement(elementName: "selectedDecision")]
public string SelectedDecision { get; set; }
}
Ниже приведен пример документа mongodb
{
"_id" : ObjectId("5aff22845d02052ea80f7717"),
"casetasks" : [
{
"_id" : ObjectId("000000000000000000000000"),
"caseTaskDecision" : {
"_id" : ObjectId("000000000000000000000000"),
"selectedDecision" : null
}
}
]
}
IЯ использую серверную часть Azure DocumentDB с интерфейсом MongoDB.Код C #, используемый для обновления и обновления свойства:
public async Task<UpdateResult> UpdateTaskDecision(string id, string taskId, string selectedDecision)
{
var update = Builders<CaseAPI.Models.Case>.Update.Set("casetasks.$.castTaskDecision.selectedDecision", selectedDecision);
return await _db.GetCollection<CaseAPI.Models.Case>(_collection).UpdateOneAsync<CaseAPI.Models.Case>(o => o.Id.Equals(id) && o.CaseTasks.Any(t => t.Id.Equals(taskId)), update);
}
Проблема заключается в выражении «Set» в приведенном выше коде.Я не уверен, как ссылаться на правильное свойство для частичного обновления встроенного документа.
Я новичок в использовании MongoDB, и это первый раз, когда используется драйвер C #.Любые указатели или ссылки на полезные ресурсы будут оценены.