ruby-on-rails – Mongoid embedshas_many:通过等价物

ruby-on-rails – Mongoid embedshas_many:通过等价物,第1张

概述在Mongoid中,我如何实现与ActiveRecord相同的功能:through =>提供? class Advertiser include Mongoid::Document embeds_many :campaigns # how would I do this embeds_many :advertisements, :through => :campa 在MongoID中,我如何实现与ActiveRecord相同的功能:through =>提供?

class Advertiser    include MongoID::document    embeds_many :campaigns    # how would I do this    embeds_many :advertisements,:through => :campaignsendclass Campaign    embedded_in :advertiser    embeds_many :advertisementsendclass Advertisement    embedded_in :campaign    # or this?    embedded_in :advertiser,:through => :campaignend

然后就能做到
Advertiser.first.advertisements

Advertisement.first.advertiser

Advertiser.campaigns.collect {|运动| campaign.advertisement}不是一个选项

如何,我将如何使用references_many / referenced_in执行这些 *** 作?

解决方法 简短的回答是,你做不到. MongoDB没有连接表的概念,也没有一般的连接. MongoID多对多“模拟”是通过在每一侧存储外键数组来完成的.

回应评论:MongoDB是一个文档存储.因此,它适用于“文档”高度异构的情况.当您为广告商存储Campains和广告子树时,您必须以ruby代码收集广告商的广告.如果您的数据具有非常同质的形式,那么您可以考虑使用关系数据库.我们经常使用MysqL来关联对象,然后将MongoDB文档添加到对象中,以便它们可以扩展.

总结

以上是内存溢出为你收集整理的ruby-on-rails – Mongoid embeds / has_many:通过等价物全部内容,希望文章能够帮你解决ruby-on-rails – Mongoid embeds / has_many:通过等价物所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1286222.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-09
下一篇2022-06-09

发表评论

登录后才能评论

评论列表(0条)

    保存