如何将Mysql查询转换为Laravel(Mongodb)查询?

时间:2017-11-18 05:33:52

标签: mongodb laravel

这里,这个查询在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)或者记录查找两个用户。

0 个答案:

没有答案