j'ai compris comment exécuter du code javascript sur le serveur MongoDB, d'un client Node.js:Effectuer non-bloquant eval lit dans MongoDB
db.eval("function(x){ return x*10; }", 1, function (err, retval) {
console.log('err: '+err);
console.log('retval: '+retval);
});
Et cela fonctionne très bien. Mais les docs disent que db.eval()
émet un verrou en écriture, de sorte que rien d'autre ne peut lire ou écrire dans la base de données. Je ne veux pas ça.
Il dit aussi que eval
n'a pas une telle limitation, mais je ne sais pas où le trouver. De la façon dont ils en parlent, il semble que le eval
normal soit uniquement disponible dans le shell mongo, et donc pas du côté client. Donc, comment puis-je exécuter ces procédures stockées sur le serveur mongodb sans tout bloquer?
Vous devez indiquer que l'utilisation db.system.js est activement découragée. Extrait de la [documentation] (http://docs.mongodb.org/manual/applications/server-side-javascript/#storing-functions-server-side): "** Note: ** Nous ne ** pas * * recommande d'utiliser des fonctions stockées côté serveur si possible. " – Philipp