我有收藏:用户、组织、电子邮件。一个用户可以有 1..* 封电子邮件。即便如此,一个组织也可以拥有 1..* 封电子邮件。
没有链接表(这是 NoSQL 原则),这些是我的集合:
用户收藏:
[{'_id': ObjectId("54feabdae75a4f4168b7acd9"), 'name': 'Henri', 'emails': [{'_id': '54feabdae75a4f4168b7acda'}] }]
组织收藏:
[{'_id': ObjectId("54feabdae75a4f4168be24a4"), 'name': 'MyOrg.org', 'emails': [{'_id': '54feabdae75a4f4168b7acda'}] }]
电子邮件收集:
[{ "_id" : ObjectId("54feabdae75a4f4168b7acda"), "email" : "henriabc@gmail.com" }]
我与“用户”模型和“组织”模型的关系:
public function emails() {
return $this->embedsMany('App\Email');
}
调用急切加载:
public fullUser($id) {
return User::find($id)->with('emails')->get();
}
但是如何(渴望)用他的电子邮件加载用户?上述方法不会填充电子邮件。