Mongoid has_and_belongs_to_many没有数组?

时间:2014-09-24 06:56:49

标签: ruby mongodb mongoid

在某些情况下,我可以看到在其本机状态下使用Mongoids has_and_belongs_to_many调用的有用性。但是,我所处的情况很糟糕。

我们有两个系列:类别和产品。

你可以看到它的发展方向。一个类别拥有并属于许多产品,反之亦然。

起初这很好用。直到我们开始处理成千上万的文档,我们才开始看到巨大的,看似呈指数级的,性能下降。

在这种情况下,尽管我不想承认,但我认为老式的RDMS方式是正确的。我宁愿有一个“加入集合”,因为我认为这样做必须更快,而不是在每个类别文档中存储100个甚至1000个产品的数组。

所以,

  • 如果我的直觉完全不正确(我是Mongo的新手),请提供信息纠正我的错误
  • 如果这听起来不对,请告诉我如何实现这样的想法

除了其他人已经实现我想做的事情之外,我找不到关于这个问题的更多信息(他们没有给出任何例子,没有代码,甚至没有给出正确方向的观点)。

有没有人遇到过这个问题?你知道的关于这个主题的任何想法或任何好的资源吗?

编辑:我应该投入一些背景信息,我发现这一点的方式是运行和观看我们的脚本。该脚本根据我们的文件将产品添加到类别中。我注意到添加一页产品/类别的速度非常快,但第2页的内容变得更慢,速度更慢等等。我在谷歌的最后一两个小时内对此进行了调查,发现它确实必须是事实上,我们有这些n-to-n数组,这是Mongoid默认的。我需要找到一种更快的方法,因为这根本无法奏效。

感谢阅读。

1 个答案:

答案 0 :(得分:0)

原来比较简单。它没有完全解决速度问题,但它适用于我们的情况。简单地研究MongoDB中的索引。