Auswerten von JavaScript in MongoDB für die dynamische Feldzuweisung
Sie möchten Dokumentfeldern basierend auf JavaScript-Ausdrücken dynamisch Werte zuweisen, z. B. das Abrufen der aktueller Server-Zeitstempel. Ihr aktueller Ansatz, bei dem Sie eine Hilfsfunktion wie mongoNow() verwenden, speichert den JavaScript-Code als Skript und verhindert so, dass er ausgewertet wird.
Die Lösung liegt in der serverseitigen Codeausführungsfunktion von MongoDB. MongoDB speichert wiederverwendbare JavaScript-Funktionen in einer Systemsammlung namens system.js. Indem Sie Ihren Code in system.js speichern, können Sie ihn später ausführen.
Beachten Sie jedoch, dass die serverseitige Codeausführung in MongoDB nur begrenzte Unterstützung und Leistung bietet. Beispielsweise können Sie gespeicherte Prozeduren nicht innerhalb einer Einfügeanweisung aufrufen.
Um eine gespeicherte Prozedur von Go aus mit dem MGO-Treiber aufzurufen, können Sie die Run()-Methode des Typs mgo.Database verwenden. Mit dieser Methode können Sie einen Eval-Befehl mit dem JavaScript-Code ausgeben, der serverseitig ausgeführt werden soll. Hier ist ein Beispiel:
db.Run(bson.M{"eval": "myStoredFunction();"})
Alternativ können Sie den $eval-Operator in Aggregationspipeline-Abfragen verwenden, um Feldwerte basierend auf JavaScript-Ausdrücken dynamisch zu generieren. Der $eval-Operator ermöglicht komplexere Berechnungen und Transformationen innerhalb der Pipeline.
Während die serverseitige Codeausführung Flexibilität bietet, ist es wichtig, ihre Einschränkungen und möglichen Auswirkungen auf die Leistung zu berücksichtigen. Sorgen Sie für gründliche Tests und Profilerstellung, bevor Sie Code bereitstellen, der auf dieser Funktionalität in Produktionsumgebungen basiert.
Das obige ist der detaillierte Inhalt vonWie kann ich Feldwerte in MongoDB mithilfe von JavaScript dynamisch zuweisen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!