PHP7+TP5 远程连接MongoDB
代码
$reData = array(
'code' => 201,
'data' => array(),
'msg' => "Error"
);
$db_config = [
'type' => '\think\mongo\Connection',
'hostname' => '192.168.1.123',//MongoDB IP地址
'database' => 'test',//数据库名
'username' => '',//MongoDB 用户名
'password' => '',//密码
'hostport' => 27017,//端口
'charset' => 'utf8',//编码
];
$allParam = request()->param();
$method = $allParam['method'] ? $allParam['method'] : "";
switch ($method) {
case "list"://列表
$list = Db::connect($db_config)->name("movie")->order('id asc')->select();
$reData['code'] = 200;
$reData['data'] = $list;
$reData['msg'] = "Success";
break;
case "detail"://详情
$id = $allParam['id'] ? $allParam['id'] : 0;
if ($id) {
$where = array(
'id' => array('eq', $id)
);
$detail = Db::connect($db_config)->name("movie")->where($where)->find();
if ($detail) {
$reData['code'] = 200;
$reData['data'] = $detail;
$reData['msg'] = "Success";
} else {
$reData['code'] = 202;
$reData['data'] = array();
$reData['msg'] = "No Data";
}
}
break;
}
return json($reData);
遇到问题:
远程连接MongoDB报错:
No suitable servers found (
serverSelectionTryOnce
set)
解决方法:
- 进入MongoDB配置mongodb.conf文件,添加
bind_ip=0.0.0.0
bind_ip标识允许连接的客户端IP,此处设为0.0.0.0,表示允许所有机器连接。也可设置特定机器的IP
- 重新启动MongoDB