MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Exécuter des scripts mongodb via mongoid Rails

Je connais cette vieille question, mais au cas où vous auriez encore besoin d'une réponse ou de quelqu'un d'autre. Cette réponse fonctionne avec gem mongo ~> 2.3 .

La clé pour répondre que vous n'avez pas besoin de mongoid dans ce cas - dans mon cas, je l'utilise pour le modèle de rails, donc j'utilise mongoid (5.1.0) uniquement pour obtenir la connexion DB db = Mongoid.default_client.database - ou vous pouvez obtenir/créer une base de données en utilisant mongo gem.

Pour exécuter javascript sur la base de données, vous devez appeler command méthode db.command({ eval: 'js' }) ou db.command({ eval: 'function(n){return db.projects.find({name: n}).toArray();}', args: ['beskhai'], nolock: true })

Pour obtenir le résultat, vous pouvez appeler .documents db.command(...).documents , Le retour est un hachage {retval :ce sera le retour de votre script, ok :vaut 1 si succès} l'objet de retour de la command l'appel est [Mongo::Operation::Result] https://github.com /mongodb/mongo-ruby-driver/blob/master/lib/mongo/operation/result.rb .