Maison > développement back-end > Golang > Comment puis-je évaluer des expressions JavaScript pour attribuer dynamiquement des valeurs de champ dans MongoDB ?

Comment puis-je évaluer des expressions JavaScript pour attribuer dynamiquement des valeurs de champ dans MongoDB ?

Linda Hamilton
Libérer: 2024-12-04 16:21:12
original
215 Les gens l'ont consulté

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

É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();"})
Copier après la connexion

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();
}
Copier après la connexion

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()"}
   }
)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal