Rechercher une fonction PHP

MongoDB::execute

(PECL mongo >=0.9.3)

MongoDB::executeExécute le code JavaScript sur la base de données [Obsolète]

Description

public MongoDB::execute ( mixed $code [, array $args = array() ] ) : array
Avertissement

La commande » eval, que cette méthode appelle, est obsolète en MongoDB 3.0 et supérieur.

Le serveur de base de données Mongo exécute un moteur Javascript. Cette méthode vous permet d'exécuter du Javascript arbitraire sur la base de données. Ceci peut être utile si vous voulez toucher un petit nombre de collections, ou pour traiter quelques résultats issus de la base de données afin de réduire la quantitié de données à envoyer au client.

L'exécution de Javascript dans la base de données pose un verrou en écriture, signifiant que les autres opérations sont bloquées. Gardez-le bien à l'esprit avant d'exécuter un script conséquant.

Ceci est un wrapper pour la commande » eval de base de données. Cette méthode est équivalente à :

<?php

public function execute($code$args) {
    return 
$this->command(array('eval' => $code'args' => $args));
}

?>

MongoDB implique une instruction de retour si vous avez une requête unique sur une seule ligne. Ceci peut causer des comportements non-intuitifs. Par exemple, l'exemple suivant retournera "foo" :

<?php

$db
->execute('"foo";');

?>

Cependant, ceci retournera NULL:

<?php

$db
->execute('"bar"; "foo";'); // plus d'une requête

$db->execute('db.foo.count(
);'
); // plus d'une ligne

?>

Afin d'éviter tout comportement non-désiré, il convient de ne pas laisser MongoDB choisir ce qu'il doit retourner, mais explicitement définir une valeur de retour. Dans l'exemple ci-dessus, nous pouvons le modifier comme ceci :

<?php

$db
->execute('"bar"; return "foo";');

$db->execute('return db.foo.count(
);'
);

?>

Maintenant, la première requête retournera "foo", et la seconde retournera un comptage de la collection "foo".

Retour à la première page de Manuel PHP  Table des matières Haut

Liste de paramètres

code

un objet MongoCode ou une chaîne a exécuter.

args

Les arguments à passer à la requête code.

Retour à la première page de Manuel PHP  Table des matières Haut

Valeurs de retour

Retourne le résultat de l'évaluation.

Retour à la première page de Manuel PHP  Table des matières Haut

Exemples

Exemple #1 Exemple avec MongoDB::execute()

<?php

$response 
$db->execute("function() { return 'Bonjour le monde !'; }");
echo 
$response['retval'];

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :


Bonjour le monde !

Exemple #2 Exemple avec MongoDB::execute()

Le tableau optionnel de paramètres sera passé à la fonction Javascript.

<?php

$response 
$db->execute("function(greeting, name) { return greeting+', '+name+'!'; }", array("Au revoir""Joe"));
echo 
$response['retval'];

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :


Au revoir, Joe!

Exemple #3 Exemple de porté

Si un objet MongoCode est utilisé à la place d'une chaîne comme premier paramètre, un scope peut être passé dans lequel le Javascript sera exécuté.

<?php

$func 
=
    
"function(greeting, name) { ".
        
"return greeting+', '+name+', dit '+greeter;".
    
"}";
$scope = array("greeter" => "Fred");

$code = new MongoCode($func$scope);

$response $db->execute($code, array("Au revoir""Joe"));
echo 
$response['retval'];

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :


Au revoir, Joe, dit Fred

Retour à la première page de Manuel PHP  Table des matières Haut

Historique

Version Description
1.7.0 Cette méthode est devenue obsolète, sachant qu'un résultat d'une commande » eval sous-jacente est devenu obsolète en MongoDB 3.0+.

Rechercher une fonction PHP

Version en cache

22/11/2024 05:26:17 Cette version de la page est en cache (à la date du 22/11/2024 05:26:17) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.

Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-mongodb.execute.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : http://php.net

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

Table des matières Haut