Jeg kender dette gamle spørgsmål, men hvis du stadig har brug for svar eller en anden. Dette svar fungerer med gem mongo ~> 2.3
.
Nøglen til at svare du behøver ikke mongoid i dette tilfælde - i mit tilfælde bruger jeg det til skinner model, så jeg bruger mongoid (5.1.0) kun for at få DB forbindelse db = Mongoid.default_client.database
- eller du kan få/oprette database ved hjælp af mongo gem.
For at udføre javascript på databasen skal du kalde command
metode db.command({ eval: 'js' })
eller db.command({ eval: 'function(n){return db.projects.find({name: n}).toArray();}', args: ['beskhai'], nolock: true })
For at få resultatet kan du ringe til .documents
db.command(...).documents
, Returneringen er en hash {retval:det vil være returnering af dit script, ok:er 1 hvis succes} returneringsobjektet for command
opkaldet er [Mongo::Operation::Result]
https://github.com /mongodb/mongo-ruby-driver/blob/master/lib/mongo/operation/result.rb
.