Ich kenne diese alte Frage, aber falls Sie noch eine Antwort oder eine andere benötigen. Diese Antwort funktioniert mit gem mongo ~> 2.3
.
Der Schlüssel zur Beantwortung benötigt in diesem Fall kein Mongoid - in meinem Fall verwende ich es für das Schienenmodell, daher verwende ich Mongoid (5.1.0) nur, um eine DB-Verbindung zu erhalten db = Mongoid.default_client.database
- oder Sie können eine Datenbank mit Mongo Gem abrufen/erstellen.
Um Javascript auf der Datenbank auszuführen, müssen Sie command
aufrufen Methode db.command({ eval: 'js' })
oder db.command({ eval: 'function(n){return db.projects.find({name: n}).toArray();}', args: ['beskhai'], nolock: true })
Um das Ergebnis zu erhalten, können Sie .documents
aufrufen db.command(...).documents
, Die Rückgabe ist ein Hash {retval:wird von Ihrem Skript zurückgegeben, ok:ist 1 bei Erfolg} das Rückgabeobjekt von command
Aufruf ist [Mongo::Operation::Result]
https://github.com /mongodb/mongo-ruby-driver/blob/master/lib/mongo/operation/result.rb
.