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 вариант.

Но я не мог правильно смешать их, чтобы решить эту проблему. Как я могу заставить это работать?

Ответы на вопрос(1)

Ваш ответ на вопрос