如何在Mongoid中使用“辅助”读取模式进行聚合?

问题描述 投票:0回答:1

如何使用secondary模式读取此聚合?这是一个例子:

class User
  include Mongoid::Document

  field :name, type: String
  field :status, type: String
  field :balance, type: Float
end


User.collection.aggregate(
  {
    '$group' => {
      'status' => '$status',
      'total' => { '$sum' => '$balance' }
    }
  }
)

我相信我需要在这个聚合中添加一个选项{ read: :secondary }。但是我怎么能这样做呢?

如果我做一个简单的查询,我可以像这样添加{ read: :secondary }选项:

User.extras(read: :secondary)
=> #<Mongoid::Criteria
  selector: {}
  options:  {:read=>:secondary}
  class:    User
  embedded: false>

我正在使用Mongoid 4.0.2

(这User.extras(read: :secondary).collection.aggregate不起作用)

ruby mongodb aggregation-framework mongoid
1个回答
0
投票

你可以将read: { mode: :secondary }作为第二个参数传递给aggregate。例如:

User.collection.aggregate(
  [
    {
      '$group' => {
      'status' => '$status',
      'total' => { '$sum' => '$balance' }
    }
  ],
  read: { mode: :secondary }
)
© www.soinside.com 2019 - 2024. All rights reserved.