【问题标题】:Mongoid Query Document with Inclusion of Referenced Document ID包含引用文档 ID 的 Mongoid 查询文档
【发布时间】:2012-05-10 09:55:24
【问题描述】:

我有一个小组模型。我想查询一个组以查看用户是否存在于其中。通常,使用嵌入式文档要容易得多,但不幸的是,在这种情况下我不能这样做。在嵌入式场景中,我会执行以下操作。如何在引用的场景中进行此查询。

注意:**我不想使用 habtm 关系。

查询

Matter.where(:'matter_counsels._id' => the_id)

class Matter
  include Mongoid::Document

  # Relationships
  has_many :matter_counsels # subclass of MatterRelationship
  has_many :matter_clients # subclass of MatterRelationship
  has_many :matter_opposing_parties # subclass of MatterRelationship
  has_many :matter_related_parties # subclass of MatterRelationship

end


class MatterRelationship
  include Mongoid::Document

  belongs_to :matter
end

【问题讨论】:

    标签: ruby-on-rails-3 mongoid


    【解决方案1】:

    我不得不承认我上面的例子并不清楚。我更新了问题以及我的解决方案。

    class Matter
      include Mongoid::Document
    
      # Relationships
      has_many :matter_counsels # subclass of MatterRelationship
      has_many :matter_clients # subclass of MatterRelationship
      has_many :matter_opposing_parties # subclass of MatterRelationship
      has_many :matter_related_parties # subclass of MatterRelationship
    
      # Finder Scopes
      class << self
    
        # finds a type of matter relationship by user
        def for_user(user,type)
          user_id = user.id.to_s
          matter_ids = MatterRelationship.where(contact_id: user_id, _type: type).collect{ |i| i.matter_id.to_s }
          where(:_id.in => matter_ids)
        end
    
      end
    
    end
    

    【讨论】:

      猜你喜欢
      • 2016-10-02
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 2014-01-25
      • 1970-01-01
      • 1970-01-01
      • 2011-04-26
      相关资源
      最近更新 更多