ruby-on-rails - em-mongo 的例子?

标签 ruby-on-rails ruby mongodb eventmachine

希望将 em-mongo 用于文本分析器脚本,该脚本从 db 加载文本、分析它、标记关键字并更新 db。

希望看到一些 em-mongo 的实际应用示例。我只能在 github em-mongo repo 上找到一个。

   require 'em-mongo'

   EM.run do
     db = EM::Mongo::Connection.new.db('db')
     collection = db.collection('test')
     EM.next_tick do
       doc = {"hello" => "world"}
       id = collection.insert(doc)
       collection.find('_id' => id]) do |res|
         puts res.inspect
         EM.stop
       end
       collection.remove(doc)
     end
   end

最佳答案

你不需要 next_tick 方法,那是 em-mongo 为你做的。定义回调,如果数据库操作完成则执行。这是一个骨架:

class NonBlockingFetcher
  include MongoConfig

  def initialize
    configure
    @connection = EM::Mongo::Connection.new(@server, @port)
    @collection = init_collection(@connection)
  end

  def fetch(value)
    mongo_cursor = @collection.find({KEY => value.to_s})
    response = mongo_cursor.defer_as_a

    response.callback do |documents|
      # foo
      # get one document
      doc = documents.first
    end

    response.errback do |err|
      # foo
    end

  end
end

关于ruby-on-rails - em-mongo 的例子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5405197/

相关文章:

ruby-on-rails - 比较对象或仅比较 ID

node.js - Mongoose 架构类型字符串不起作用

ruby-on-rails - 无法在我的本地主机上运行 stripe-ruby-mock

ruby-on-rails - Ruby On Rails 初学者 : Reading rows from 1 sqlite3 database and populating another sqlite3 database in my rails app

ruby-on-rails - 需要从 database.yml 文件中获取用户名和密码,并传递给 rake 任务中的方法

ruby - 如何将哈希保存到 Sequel DB?

mongodb map 数据在一个集合中

python - MongoDB 许多小上传与一次大上传

ruby-on-rails - 我应该在哪里存储Rails应用程序的站点站点范围配置设置?

ruby-on-rails - 将 stackdriver gem 与 Rails 结合使用