加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-3 – 访问Mongoid 3主节点

发布时间:2020-12-17 03:22:07 所属栏目:百科 来源:网络整理
导读:如何访问Mongoid中的主节点 3.0? 在Mongoid 3.0你可以使用: Mongoid::Config.master.eval('...') 我在3中找到的最接近的似乎是: klass.collection.database.command(eval: '...') #= failed with error "not master" 有没有更好的方式来获取主人?或者确
如何访问Mongoid中的主节点> 3.0?

在Mongoid< 3.0你可以使用:

Mongoid::Config.master.eval('...')

我在3中找到的最接近的似乎是:

klass.collection.database.command(eval: '...') #=> failed with error "not master"

有没有更好的方式来获取主人?或者确保主节点评估命令的方法?

解决方法

Mongoid 3.0使用Moped而不是10gen驱动程序,因此请参阅Moped :: Cluster#with_primary

http://rubydoc.info/github/mongoid/moped/master/Moped/Cluster:with_primary

例如:

User.collection.database.session.cluster.with_primary do
  p User.collection.database.command(eval: 'function() { return 3+3; }')
  p User.collection.database.command(ping: 1)
end

输出:

{"retval"=>6.0,"ok"=>1.0}
{"ok"=>1.0}

请注意,建议使用其他可能的解决方案,例如group,aggregation和mapreduce.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读