如何在MongoDB中存储多对多关系

时间:2012-05-17 15:45:13

标签: mongodb many-to-many mongodb-php

我认为可以说今天下午刚刚安装了数据库,我对MongoDB很新。

我正在设法掌握存储和检索对象,但我很难找到存储具有多对多关系的对象的最佳方式。

我已经遇到了DBRef对象并且已经开始工作但这似乎只支持延迟加载的方法。

有没有办法鼓励MongoDB急切加载DBRef?
是否存在更好/不同的方式来存储多对多关系?

非常感谢

罗布

1 个答案:

答案 0 :(得分:1)

首先,我认为您需要查看this question over here,其中讨论了多对多关系。

要理解的另一件事是“DBRefs”的本质。 MongoDB数据库不提供任何连接功能

DBRef只是几个库/驱动程序实现者几年前达成一致的标准。 DBRef只是特定表示法中的JSON对象,它提供指向某些集合中某些其他文档的指针。因此,“lazy vs. eager”加载的实现完全特定于您正在使用的驱动程序/包装器库。

这就是说,“eager loading”的概念对MongoDB来说毫无意义。在SQL中,您可以通过使用某种形式的预先加载并“提前”进行连接来节省总查询。同样,DB不支持连接,因此“eager loading”与“延迟加载”的查询次数相同。