pushOrModify как оператор для вложенного документа Монго
Я пытаюсь сделать так, чтобы, если поддок существует, обновите его и, в противном случае, запустите новый поддок только одним методом.
Сначала найдите{ name: "SweetTown" }
а потом,
ЕслиBob
существует, я хочу изменить свою репутацию на30
:
Town collection
{ name: "SweetTown", residents: [{ name: "Bob", reputation: 20 }] }
должен быть
{ name: "SweetTown", residents: [{ name: "Bob", reputation: 30 }] }
Или нет, нажмите{ name: "Bob", reputation: 30 }
вresidents
.
Town collection
{ name: "SweetTown", residents: [{ name: "Alice", reputation: 140 }] }
должен быть
{ name: "SweetTown", residents: [
{ name: "Alice", reputation: 140 },
{ name: "Bob", reputation: 30 }
]}
Я много искал об этом и нашел несколько способов, которые могут быть решением, как$addToSet
, $push
с$ne
или жеupsert
вариант.
Но я не мог правильно смешать их, чтобы решить эту проблему. Как я могу заставить это работать?