Знам този стар въпрос, но в случай, че все още имате нужда от отговор или някой друг. Този отговор работи с gem mongo ~> 2.3
.
Ключът към отговора е, че не се нуждаете от mongoid в този случай - в моя случай го използвам за rails модел, така че използвам mongoid (5.1.0) само за да получа DB връзка db = Mongoid.default_client.database
- или можете да получите/създадете база данни с помощта на mongo gem.
За да изпълните javascript в база данни, трябва да извикате command
метод db.command({ eval: 'js' })
или db.command({ eval: 'function(n){return db.projects.find({name: n}).toArray();}', args: ['beskhai'], nolock: true })
За да получите резултата, можете да извикате .documents
db.command(...).documents
, Връщането е хеш {retval:това ще бъде връщане на вашия скрипт, добре:е 1 при успех} върнатият обект на command
повикването е [Mongo::Operation::Result]
https://github.com /mongodb/mongo-ruby-driver/blob/master/lib/mongo/operation/result.rb
.