Jessneggers / Laravel MongoDB 其中 Raw 查找不起作用



我将数据库从Sql Server迁移到MongoDB

我想将现有客户表与联系人表连接。

客户有多个联系人。我尝试了哪里原始查找

客户集合

{
"_id": 77,
"custid": 93
}

联系人集合

{"_id":77,"contactid":77,"custid":93,"firstname":"Christy ","lastname":"Lambright" }
{"_id":79,"contactid":79, "custid":93,"firstname":"Marlys ","lastname":"Barry" }

客户模式

class custt extends Model
{
use Notifiable;
protected $primaryKey = 'id';
}

联系莫代尔

class contact extends Model
{
use Notifiable;
protected $primaryKey = 'id';

在控制器中

$cnt = DB::collection("custts")->raw(function($collection)
{
$more_where = [];
$more_where[]['$lookup'] = array(
'from' => 'contacts',
'localField' => 'custid',
'foreignField' => 'custid',
'as' => 'country',
);

return $collection->aggregate($more_where);
});
Error comes -- 

空结果

我尝试了很多hasManybelongstoMany选项。不工作...

请建议

好的,终于发现它可以工作了

来源 - https://github.com/jenssegers/laravel-mongodb/issues/841

$cnt = custt::raw(function($collection)
{
return $collection->aggregate(
[[
'$lookup' => [
'as'=>'info',
'from'=>'contacts',
'foreignField'=>'custid',
'localField'=>'custid'
]
]]
);
}); 

最新更新