这里,这个查询在Mysql中完美运行。 但将此查询覆盖为Laravel(Mongodb)查询格式
SELECT F.status, U.username, U.email
FROM users U, friends F
WHERE
CASE
WHEN F.friend_one = '$user_id'
THEN F.friend_two = U.user_id
WHEN F.friend_two= '$user_id'
THEN F.friend_one= U.user_id
END
AND
F.status='1';
这是朋友模块并获取我的所有好友列表
这是我的表格看起来像
{
"_id" :"5a12618b82956d4c0e00002d",
"otheruser" : "598442b58ed7bc0c19000029",
"relation_type" : 2,
"is_friend" : "true",
"user_id" : "59bf784682956df00c00002a"
}
这是我在存储库中的示例查询..
public function GetFriendsOfUser($id,$userId)
{
$list = $this->makeModel()
->with('getallfrienduser')
->where('is_friend',"true")
->where('relation_type',2)
->where(function ($query) use ($id,$userId) {
$query->where('user_id', $userId)
->orWhere('otheruser', $id);
})
->get();
}
此处模型和连接中的样本连接已被处理
public function getallfrienduser()
{
return $this->hasMany('App\Models\Users','_id','user_id');
}
public function getallfriendother()
{
return $this->hasMany('App\Models\Users','_id','otheruser');
}
但只有一个连接使用(user_id,otheruser)或者记录查找两个用户。