Info
Installation
Setting
設定可連入的 ip 與 port
- MongoDB 預設只開放給 localhost,必須修改設定檔
sudo vi /etc/mongod.conf
net:
port: 27017
bindIp: 0.0.0.0
sudo service mongod restart
建立權限
- MongoDB 預設沒有權限,不需要登入帳號密碼即可操作資料
- 如果需要建立權限,必須先建立管理者(admin DB 的 Users)
mongo
use admin
db.createUser(
{
user: "帳號",
pwd: "密碼",
roles: [ { role: "root", db: "admin" } ]
}
)
db.auth("帳號", "密碼");
mongo -u "帳號" -p "密碼" --authenticationDatabase "admin"
預設開啟帳號驗證
sudo vi /etc/mongod.conf
security.authorization: enabled
sudo service mongod restart
Management Tool
PHP Driver
phpbrew
phpbrew ext install mongodb
原生 php
sudo apt install php-pear php7.1-dev
sudo pecl channel-update pecl.php
sudo pecl install mongodb
Build process completed successfully
Installing '/usr/lib/php/20160303/mongodb.so'
install ok: channel://pecl.php.net/mongodb-1.3.0
configuration option "php_ini" is not set to php.ini location
You should add "extension=mongodb.so" to php.ini
- 新增至 php.ini(apache & cli)
sudo vi /etc/php/7.1/apache2/php.ini
sudo vi /etc/php/7.1/cli/php.ini
extension=mongodb.so
Laravel Package
- /project/config/database.php
'mongodb' => [
'driver' => 'mongodb',
'host' => env('MONGODB_HOST'),
'port' => env('MONGODB_PORT'),
'database' => env('MONGODB_DATABASE'),
'username' => env('MONGODB_USERNAME'),
'password' => env('MONGODB_PASSWORD'),
'options' => [
'database' => env('MONGODB_DATABASE'),
]
],
$r = DB::connection('mongodb')->collection(MONGODB_COLLECTION_NAME)->get();
dd($r);
- Model
- /project/App/Models/Mongo/Test.php
<?php
namespace App\Models\Mongo;
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
class Test extends Eloquent
{
protected $guarded = [];
protected $connection = 'mongodb';
}
$r = $this->model->where('time', '=', '2017-09-14 19:21')->take(3)->get();
dd($r);
Reference
-
-
-