Conozco esta vieja pregunta, pero en caso de que aún necesite una respuesta o cualquier otra. Esta respuesta funciona con gem mongo ~> 2.3
.
La clave para responder es que no necesita mongoid en este caso; en mi caso, lo uso para el modelo de rieles, por lo que uso mongoid (5.1.0) solo para obtener la conexión DB db = Mongoid.default_client.database
- o puede obtener/crear una base de datos usando mongo gem.
Para ejecutar javascript en la base de datos, debe llamar al command
método db.command({ eval: 'js' })
o db.command({ eval: 'function(n){return db.projects.find({name: n}).toArray();}', args: ['beskhai'], nolock: true })
Para obtener el resultado, puede llamar a .documents
db.command(...).documents
, El retorno es un hash {retval:será el retorno de su script, ok:es 1 si tiene éxito} el objeto de retorno de command
la llamada es [Mongo::Operation::Result]
https://github.com /mongodb/mongo-ruby-driver/blob/master/lib/mongo/operation/result.rb
.