Может кто-то просто объяснить, как сэкономить на многоуровневых моделях mongodb! Я понимаю, что может быть где-то здесь. Я смогу найти ответ, но все, что я нахожу здесь, НЕ работает для меня.mongodb. C#. Не удается сохранить многоуровневую модель для db
у меня есть несколько моделей А, В, С, D, Е:
- _id
- некоторые поля
- B []
- _id
- некоторые поля
- C []
- _id
- некоторые поля
- D []
- _id
- некоторые поля
- Е []
- _id
- некоторые поля
Первый уровень экономии ОК! Сохранение второго уровня в порядке! Третий уровень я сделать так:
IMongoQuery query = Query.And(Query<A>.EQ(a => a.A_Id, data.A_Id),
Query<A>.ElemMatch<Wall>(a => a.B, b => b.EQ(tt => tt.B_Id, data.B_Id)));
var update = Update.Push("B.$.C", data.C.ToBsonDocument());
collection.Update(query, update);
Кажется работает;
Но как я могу сохранить/обновить следующие уровни?
Четвертый уровень я пытаюсь сохранить, как это:
var query = Query.And(Query<A>.EQ(a => a.A_Id, data.A_Id),
Query<A>.ElemMatch(a => a.B, bb => bb.EQ(tt => tt.B_Id, data.B_Id)),
Query<B>.ElemMatch(b => b.C, c => c.EQ(wm => wm.C_Id, data.C_Id)));
var update = Update.Push("C.$.D", data.D.ToBsonDocument());
collection.Update(query, update);
Может быть кто-то может мне объяснить, как правильно писать запросы с использованием C# Driver. Или я слишком запутан и делаю все неправильно!
Почему бы вам не использовать collection.Save? – i3arnon
Причина Обновление сохранит или обновит модель. кроме того, он отлично работает на первых 3 уровнях. – noob
сохранение также сохраняет или обновляет документ. – i3arnon