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

ruby-on-rails-3 – 具有Mongoid Embedded和Standalone的Rails模

发布时间:2020-12-17 03:03:01 所属栏目:百科 来源:网络整理
导读:我如何创建一个Mongoid模型,该模型能够保存在自己的集合中,并嵌入到另一个文档中? 解决方法 简短的回答:你做不到. 当您在两个Mongoid文档之间使用嵌入式关系时,这是因为您不希望子模型位于其自己的集合中.它的字面意思是嵌入式文档:嵌入在其父级中. 我不
我如何创建一个Mongoid模型,该模型能够保存在自己的集合中,并嵌入到另一个文档中?

解决方法

简短的回答:你做不到.

当您在两个Mongoid文档之间使用嵌入式关系时,这是因为您不希望子模型位于其自己的集合中.它的字面意思是嵌入式文档:嵌入在其父级中.

我不确定你是不是Mongoid的新手,所以你真正想要的是一个被引用的关系,它的行为更像传统的RDBMS关系,其中子文档存储对父文档ID的引用. Mongoid文档的开头是here.

鉴于这些嵌入式模型,在两者之间切换非常容易:

class Person
  include Mongoid::Document

  field :name
  embeds_many :phone_numbers
end

class PhoneNumber
  include Mongoid::Document

  field :area_code
  field :number

  embedded_in :person
end

您只需更改embeds_many和embedded_in,即可:

class Person
  include Mongoid::Document

  field :name
  has_many :phone_numbers
end

class PhoneNumber
  include Mongoid::Document

  field :area_code
  field :number

  belongs_to :person
end

它会起作用.现在,您可以使用以下语句直接查询电话号码:PhoneNumber.where(:area_code =>“212”).

(编辑:李大同)

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

    推荐文章
      热点阅读