Heim > Backend-Entwicklung > Golang > Wie kann ich JavaScript-Ausdrücke auswerten, um Feldwerte in MongoDB dynamisch zuzuweisen?

Wie kann ich JavaScript-Ausdrücke auswerten, um Feldwerte in MongoDB dynamisch zuzuweisen?

Linda Hamilton
Freigeben: 2024-12-04 16:21:12
Original
212 Leute haben es durchsucht

How Can I Evaluate JavaScript Expressions to Dynamically Assign Field Values in MongoDB?

Auswerten von JavaScript-Ausdrücken in MongoDB-Feldwerten

In MongoDB ist es möglich, Feldwerte basierend auf der Auswertung von JavaScript-Ausdrücken dynamisch zuzuweisen. Das einfache Einfügen eines JavaScript-Objekts als Feldwert führt jedoch nicht dazu, dass der Ausdruck ausgewertet wird.

Serverseitige Codeausführung

MongoDB bietet einen Mechanismus zum Speichern und Ausführen von JavaScript-Funktionen auf der Serverseite. Die spezielle Sammlung system.js speichert diese Funktionen. Um auf diese Sammlung zuzugreifen und eine Funktion auszuführen, können Sie die Run()-Methode des Typs mgo.Database verwenden. Die Run()-Methode benötigt einen Eval-Befehl mit dem auszuführenden JavaScript-Code als Argument.

Um beispielsweise eine gespeicherte Funktion namens myStoredFunction() aus Go mit dem MGO-Treiber aufzurufen, können Sie Folgendes verwenden Code:

db.Run(bson.M{"eval": "myStoredFunction();"})
Nach dem Login kopieren

Beispiel

Angenommen, Sie möchten das lastSeen-Feld auf den aktuellen Server festlegen Zeit. Sie können in system.js eine gespeicherte JavaScript-Funktion mit dem Namen getCurrentTime() erstellen:

function getCurrentTime() {
  return (new Date()).toISOString();
}
Nach dem Login kopieren

Dann können Sie in Ihrer Einfügeanweisung wie folgt auf die gespeicherte Funktion verweisen:

err := c.Insert(
   struct{Serial, Priority, Url, LastSeen interface{}}{ 
      Url: getInformedHost() + ":" + getRunningPortString(), 
      Priority: rand.Int(), 
      LastSeen: bson.M{"$eval": "getCurrentTime()"}
   }
)
Nach dem Login kopieren

Durch die Verwendung von $eval im LastSeen-Feldwert wertet MongoDB den angegebenen JavaScript-Ausdruck aus und speichert das Ergebnis als Feldwert.

Das obige ist der detaillierte Inhalt vonWie kann ich JavaScript-Ausdrücke auswerten, um Feldwerte in MongoDB dynamisch zuzuweisen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage