-1
У меня есть проблема с обновлением (заменой) документов в MongoDb, я уже могу обновлять документы, но я не могу обновлять поддокументы.Пакетное обновление в mongodb C# драйвер
содержание Документ:
{
"_id" : 1,
"Code" : LUUID("00000000-0000-0000-0000-000000000000"),
"Zip" : 123456,
"Text" : "sample01",
"Tags" : {
"_id" : 1,
"Tag" : "tag1"
}
}
{
"_id" : 2,
"Code" : LUUID("00000000-0000-0000-0000-000000000000"),
"Zip" : 9.87654e+008,
"Text" : "sample02",
"Tags" : {
"_id" : 1,
"Tag" : "tag1"
}
}
{
"_id" : 3,
"Code" : LUUID("00000000-0000-0000-0000-000000000000"),
"Zip" : 134679,
"Text" : "sample03",
"Tags" : {
"_id" : 1,
"Tag" : "tag1"
}
}
Я хочу обновить Tags
из 1-го и 2-го документа (где "_id"
составляет 1 или 2). Я попытался это:
var tags = new PostTag { Id = 8, Tag = "tag8" };
var filter = Builders<Post>.Filter.In(x => x.Id, new List<int> { 1, 2 });
var update = Builders<Post>.Update.Set(z => z.Tags, tags);
collection.UpdateManyAsync(filter, update);
Но обновление не удалось.
и исключение ... ??? я не понимаю, почему в C# вы используете Id вместо _id внутри PostTag – ymz
Пожалуйста, начните с чтения [ask] и укажите точную причину сбоя обновления. – CodeCaster
Ваш код выглядит правильно для меня. Каковы значения в 'UpdateResult', в частности,' MatchedCount' и 'ModifiedCount'? – Peter