Maison >développement back-end >Golang >Comment puis-je utiliser les fonctions JavaScript stockées dans MongoDB pour attribuer dynamiquement des valeurs de champ ?

Comment puis-je utiliser les fonctions JavaScript stockées dans MongoDB pour attribuer dynamiquement des valeurs de champ ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-06 07:24:11643parcourir

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

Évaluation de JavaScript dans MongoDB pour attribuer des valeurs de champ

L'insertion de documents dans une collection MongoDB peut être complétée par une évaluation JavaScript pour attribuer dynamiquement des valeurs de champ. Cependant, le code donné ne parvient pas initialement à évaluer l'instruction JavaScript et la stocke sous forme de script.

La documentation MongoDB décrit une méthode pour stocker les fonctions JavaScript côté serveur dans la collection system.js. En créant une fonction stockée, nous pouvons évaluer JavaScript à distance depuis le client Go.

Méthode utilisant les fonctions stockées :

  1. Créer une fonction dans le system.js collection :
db.system.js.insert({
    _id: "assignDate",
    value: function() {
        return ISODate();
    }
});
  1. Appelez la fonction stockée depuis Go à l'aide de Run() méthode :
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
}

Considérations :

  • L'évaluation du code côté serveur dans MongoDB a encore des limites.
  • Utilisation des Les fonctions fournissent une solution de contournement pour évaluer JavaScript, mais il est important de noter ses mises en garde en matière de performances.

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!

Déclaration:
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