Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails MongoDB嵌入式文档/带Rails的文档_Ruby On Rails_Mongodb_Mongomapper_Nosql - Fatal编程技术网

Ruby on rails MongoDB嵌入式文档/带Rails的文档

Ruby on rails MongoDB嵌入式文档/带Rails的文档,ruby-on-rails,mongodb,mongomapper,nosql,Ruby On Rails,Mongodb,Mongomapper,Nosql,我最近开始使用MongoMapper gem在Rails上玩MongoDB。我想知道是否有某种方式可以使类/对象/集合既成为文档又成为嵌入文档。我希望同一实体既包含/嵌入到其他文档中,也能够作为对象独立存在 这可能吗?我处理这个问题的方法不对吗?任何讨论/建议都将不胜感激,因为目前网络上的资源似乎不适合这些内容 我有一个非常类似的用例,孤子(使用您的实体名称): 有人收藏 属于相关人员的嵌入式模型业务人员 一个包含企业的集合,其中嵌入了许多:忙碌的人 这背后的想法是,我在BusinessPe

我最近开始使用MongoMapper gem在Rails上玩MongoDB。我想知道是否有某种方式可以使类/对象/集合既成为文档又成为嵌入文档。我希望同一实体既包含/嵌入到其他文档中,也能够作为对象独立存在


这可能吗?我处理这个问题的方法不对吗?任何讨论/建议都将不胜感激,因为目前网络上的资源似乎不适合这些内容

我有一个非常类似的用例,孤子(使用您的实体名称):

  • 有人收藏
  • 属于相关人员的嵌入式模型业务人员
  • 一个包含
    企业的集合,其中嵌入了许多:忙碌的人
这背后的想法是,我在BusinessPerson中有额外的字段,如果此人也经营不同的业务,则这些字段可能不适用。比如说在该业务中的角色、电子邮件地址或其份额

不,你可能会说,获得业务一个人可能看起来很难,但事实并非如此:

class Person
   def businesses
     Business.where('business_people._id' => self.id)
   end
end

我有一个非常类似的用例,solition将拥有(使用您的实体名称):

  • 有人收藏
  • 属于相关人员的嵌入式模型业务人员
  • 一个包含
    企业的集合,其中嵌入了许多:忙碌的人
这背后的想法是,我在BusinessPerson中有额外的字段,如果此人也经营不同的业务,则这些字段可能不适用。比如说在该业务中的角色、电子邮件地址或其份额

不,你可能会说,获得业务一个人可能看起来很难,但事实并非如此:

class Person
   def businesses
     Business.where('business_people._id' => self.id)
   end
end

一般的答案是否定的,但我认为你可能以错误的方式处理这个问题。你能说清楚你想做什么吗?当然,所以我有两个实体:商业和个人。我希望企业将人员作为嵌入式文档。然而,我希望人们成为他们自己的文档,因为他们也有关联的实体。它们都有自己的显示页面,并且是独立的实体。但为了提高效率,我希望人们能够被存储为企业的嵌入式文档。我理解这可能需要同一实体的两份“副本”。我正打算写一个after_save回调来更新人们的相关引用。欢迎任何想法。可能最容易存储对每个企业中人员对象的一系列引用。严格来说,这是不可能的,因为最终会将关联与嵌入的关联混为一谈,而这可能是您不想要的。您可以复制引用,以便业务
中有许多:人
中有许多:嵌入的人
或其他东西,但保持同步将取决于您。您是否可能过早地进行了优化?一般的答案是否定的,但我认为您可能以错误的方式处理问题。你能说清楚你想做什么吗?当然,所以我有两个实体:商业和个人。我希望企业将人员作为嵌入式文档。然而,我希望人们成为他们自己的文档,因为他们也有关联的实体。它们都有自己的显示页面,并且是独立的实体。但为了提高效率,我希望人们能够被存储为企业的嵌入式文档。我理解这可能需要同一实体的两份“副本”。我正打算写一个after_save回调来更新人们的相关引用。欢迎任何想法。可能最容易存储对每个企业中人员对象的一系列引用。严格来说,这是不可能的,因为最终会将关联与嵌入的关联混为一谈,而这可能是您不想要的。您可以复制引用,以便业务
中有许多:人
中有许多:嵌入的人
或其他东西,但保持同步将取决于您。您是否可能过早地进行了优化?