MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Executando scripts mongodb via mongoid Rails


Eu conheço essa pergunta antiga, mas caso você ainda precise de resposta ou de qualquer outra pessoa. Esta resposta funciona com gem mongo ~> 2.3 .

A chave para responder você não precisa do mongoid neste caso - no meu caso eu uso para o modelo rails, então eu uso o mongoid (5.1.0) apenas para obter a conexão do banco de dados db = Mongoid.default_client.database - ou você pode obter/criar banco de dados usando o mongo gem.

Para executar javascript no banco de dados você precisa chamar command método db.command({ eval: 'js' }) ou db.command({ eval: 'function(n){return db.projects.find({name: n}).toArray();}', args: ['beskhai'], nolock: true })

Para obter o resultado, você pode chamar .documents db.command(...).documents , O retorno é um hash {retval:será o retorno do seu script, ok:é 1 se for bem sucedido} o objeto de retorno do command chamada é [Mongo::Operation::Result] https://github.com /mongodb/mongo-ruby-driver/blob/master/lib/mongo/operation/result.rb .