Maison > développement back-end > Golang > Comment puis-je attribuer dynamiquement des valeurs de champ dans MongoDB à l'aide de JavaScript ?

Comment puis-je attribuer dynamiquement des valeurs de champ dans MongoDB à l'aide de JavaScript ?

DDD
Libérer: 2024-12-22 10:01:54
original
367 Les gens l'ont consulté

How Can I Dynamically Assign Field Values in MongoDB Using JavaScript?

Évaluation de JavaScript dans MongoDB pour l'attribution dynamique de champs

Vous cherchez à attribuer dynamiquement des valeurs aux champs de document en fonction d'expressions JavaScript, telles que la récupération du horodatage actuel du serveur. Votre approche actuelle, où vous utilisez une fonction d'assistance telle que mongoNow(), stocke le code JavaScript sous forme de script, empêchant son évaluation.

La solution réside dans la capacité d'exécution de code côté serveur de MongoDB. MongoDB stocke les fonctions JavaScript réutilisables dans une collection système appelée system.js. En stockant votre code dans system.js, vous pourrez l'exécuter ultérieurement.

Cependant, notez que l'exécution de code côté serveur dans MongoDB a une prise en charge et des performances limitées. Par exemple, vous ne pouvez pas appeler de procédures stockées à partir d'une instruction insert.

Pour appeler une procédure stockée depuis Go à l'aide du pilote mgo, vous pouvez utiliser la méthode Run() du type mgo.Database. Cette méthode vous permet d'émettre une commande eval avec le code JavaScript à exécuter côté serveur. Voici un exemple :

db.Run(bson.M{"eval": "myStoredFunction();"})
Copier après la connexion

Vous pouvez également utiliser l'opérateur $eval dans les requêtes du pipeline d'agrégation pour générer dynamiquement des valeurs de champ basées sur des expressions JavaScript. L'opérateur $eval permet des calculs et des transformations plus complexes au sein du pipeline.

Bien que l'exécution de code côté serveur offre de la flexibilité, il est important de prendre en compte ses limites et ses implications potentielles en termes de performances. Assurez des tests et un profilage approfondis avant de déployer du code qui repose sur cette fonctionnalité dans des environnements de production.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal