pushOrModify wie Operator für Mongo Filialdokument

Was ich versuche zu tun, ist, dass wenn Subdoc vorhanden ist, aktualisieren und andernfalls neue Subdoc mit nur einer Methode verschieben.

First, find{ name: "SweetTown" } und dann

WennBob ist vorhanden, ich möchte seinen Ruf in @ ände30:

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

sollte @ se

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

Oder nicht, drücken Sie{ name: "Bob", reputation: 30 } zuresidents.

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

sollte @ se

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

Ich habe viel darüber gesucht und einige Möglichkeiten gefunden, die die Lösung sein könnten wie$addToSet, $push mit$ne oderupsert Möglichkeit

Aber ich konnte diese nicht richtig mischen, um dieses Problem zu lösen. Wie kann ich es zum Laufen bringen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage