Tôi biết câu hỏi cũ này nhưng trong trường hợp bạn vẫn cần câu trả lời hoặc bất kỳ câu nào khác. Câu trả lời này hoạt động với gem mongo ~> 2.3
.
Chìa khóa để trả lời bạn không cần mongoid trong trường hợp này - trong trường hợp của tôi, tôi sử dụng nó cho mô hình rails, vì vậy tôi sử dụng mongoid (5.1.0) chỉ để nhận kết nối DB db = Mongoid.default_client.database
- hoặc bạn có thể lấy / tạo cơ sở dữ liệu bằng đá quý mongo.
Để thực thi javascript trên cơ sở dữ liệu, bạn cần gọi lệnh command
method db.command({ eval: 'js' })
hoặc db.command({ eval: 'function(n){return db.projects.find({name: n}).toArray();}', args: ['beskhai'], nolock: true })
Để nhận được kết quả, bạn có thể gọi .documents
db.command(...).documents
, Trả về là một băm {retval:nó sẽ là tập lệnh trả về của bạn, ok:là 1 nếu thành công} đối tượng trả về của lệnh command
cuộc gọi là [Mongo::Operation::Result]
https://github.com /mongodb/mongo-ruby-driver/blob/master/lib/mongo/operation/result.rb
.