pushOrModify como operador para subdocumento mongo

Lo que estoy tratando de hacer es que si existe un subdoc, actualícelo y, de lo contrario, presione el nuevo subdoc por un solo método.

Primero, encuentra{ name: "SweetTown" } y entonces,

SiBob existe, quiero cambiar su reputación a30:

Town collection
{ name: "SweetTown", residents: [{ name: "Bob", reputation: 20 }] }

debería ser

{ name: "SweetTown", residents: [{ name: "Bob", reputation: 30 }] }

O no, empujar{ name: "Bob", reputation: 30 } aresidents.

Town collection
{ name: "SweetTown", residents: [{ name: "Alice", reputation: 140 }] }

debería ser

{ name: "SweetTown", residents: [
  { name: "Alice", reputation: 140 },
  { name: "Bob", reputation: 30 }
]}

He buscado mucho sobre esto y encontré algunas formas que podrían ser la solución, como$addToSet, $push con$ne oupsert opción.

Pero no pude mezclarlos adecuadamente para resolver este problema. ¿Cómo puedo hacer que funcione?

Respuestas a la pregunta(1)

Su respuesta a la pregunta