MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Ausführen von mongodb-Skripten über mongoid Rails

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 .