Я пытаюсь обновить документ на mongodb. Документ, подобный следующему:
{
"_id" : ObjectId("5ea10bb2b930115d186bf38c"),
"restaurant" : "5e9ca5611abce13b6014b8ed",
"Url" : {
"idImage" : null,
"Url" : null
}
}
Я хочу обновить объект Url, но получаю сообщение «Ошибка обновления команды: обновление пути« Url. $. IdImage »приведет к конфликту ..».
Это мой текущий код:
var user = await _context.Menu
.Find(filter)
.FirstOrDefaultAsync();
var changesDocument = BsonDocument.Parse(input.ToJson());
var firsElement = changesDocument.FirstOrDefault(x => x.Value != BsonNull.Value);
UpdateResult result = null;
if (user != null && firsElement.Value != null)
{
var update = Builders<MenuDto>.Update.Set(firsElement.Name, firsElement.Value);
foreach (var item in changesDocument)
{
if (!item.Value.IsBsonNull && item.Name != "_id")
{
if(item.Name != "restaurant")
{
var changesDocumentUrl = BsonDocument.Parse(item.Value.ToJson());
foreach (var value in changesDocumentUrl)
{
update = update.Set($"{item.Name}.$.{value.Name}", value.Value);
result = await _context.Menu.UpdateOneAsync(filter, update);
}
} else
{
update = update.Set(item.Name, item.Value);
result = await _context.Menu.UpdateOneAsync(filter, update);
}
}
}
return result.IsAcknowledged;
}
Как я могу решить эту проблему?