Évaluation des expressions JavaScript dans les valeurs de champ MongoDB
Dans MongoDB, il est possible d'attribuer dynamiquement des valeurs de champ en fonction de l'évaluation des expressions JavaScript. Cependant, le simple fait d'insérer un objet JavaScript en tant que valeur de champ n'entraînera pas l'évaluation de l'expression.
Exécution de code côté serveur
MongoDB fournit un mécanisme de stockage et l'exécution de fonctions JavaScript côté serveur. La collection spéciale system.js stocke ces fonctions. Pour accéder à cette collection et exécuter une fonction, vous pouvez utiliser la méthode Run() de type mgo.Database. La méthode Run() prend une commande eval avec le code JavaScript à exécuter comme argument.
Par exemple, pour appeler une fonction stockée nommée myStoredFunction() depuis Go à l'aide du pilote mgo, vous pouvez utiliser ce qui suit code :
db.Run(bson.M{"eval": "myStoredFunction();"})
Exemple
Supposons que vous souhaitiez définir le champ lastSeen sur le serveur actuel temps. Vous pouvez créer une fonction JavaScript stockée dans system.js appelée getCurrentTime() :
function getCurrentTime() { return (new Date()).toISOString(); }
Ensuite, dans votre instruction d'insertion, vous pouvez référencer la fonction stockée comme suit :
err := c.Insert( struct{Serial, Priority, Url, LastSeen interface{}}{ Url: getInformedHost() + ":" + getRunningPortString(), Priority: rand.Int(), LastSeen: bson.M{"$eval": "getCurrentTime()"} } )
En utilisant $eval dans la valeur du champ LastSeen, MongoDB évaluera l'expression JavaScript spécifiée et stockera le résultat comme valeur du champ.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!