Heim >Backend-Entwicklung >Golang >Wie kann ich gespeicherte JavaScript-Funktionen in MongoDB verwenden, um Feldwerte dynamisch zuzuweisen?

Wie kann ich gespeicherte JavaScript-Funktionen in MongoDB verwenden, um Feldwerte dynamisch zuzuweisen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-06 07:24:11646Durchsuche

How Can I Use Stored JavaScript Functions in MongoDB to Dynamically Assign Field Values?

Auswerten von JavaScript in MongoDB, um Feldwerte zuzuweisen

Das Einfügen von Dokumenten in eine MongoDB-Sammlung kann durch eine JavaScript-Auswertung erweitert werden, um Feldwerte dynamisch zuzuweisen. Der angegebene Code wertet die JavaScript-Anweisung jedoch zunächst nicht aus und speichert sie stattdessen als Skript.

Die MongoDB-Dokumentation beschreibt eine Methode zum serverseitigen Speichern von JavaScript-Funktionen in der system.js-Sammlung. Durch die Erstellung einer gespeicherten Funktion können wir JavaScript remote vom Go-Client aus auswerten.

Methode mit gespeicherten Funktionen:

  1. Erstellen Sie eine Funktion in system.js Sammlung:
db.system.js.insert({
    _id: "assignDate",
    value: function() {
        return ISODate();
    }
});
  1. Rufen Sie die gespeicherte Funktion von Go aus mit Run() auf Methode:
func createInstance(c *mgo.Collection) {
    result, err := c.Run(
        bson.M{"eval": "assignDate()"},
    )
    checkError(err, "Could not get server time")

    var doc bson.M
    err = result.One(&doc)
    if err != nil {
        checkError(err, "Invalid result from stored function", 3)
    }
    lastSeen, ok := doc["retval"].(time.Time)
    if !ok {
        checkError(fmtErrorf("Invalid result from stored function: %v", doc["retval"]), "Invalid result from stored function: %v", 3)
    }

    // ... Insert document with evaluated field value
}

Überlegungen:

  • Die serverseitige Codeauswertung in MongoDB weist immer noch Einschränkungen auf.
  • Verwendung gespeicherter Funktionen bieten eine Problemumgehung für die Evaluierung von JavaScript, es ist jedoch wichtig, die Leistungseinbußen zu beachten.

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

Stellungnahme:
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