Laravel&LumenインストールMongodb拡張

2192 ワード

LaravelはRedis拡張に非常に便利であり、理論的にはMongodbの拡張にも同様であるべきであるため、今日はLaravelがどのようにMongodbをサポートしているかを記録します.
1.composer依存性の追加(jenssegers/mongodb):
composer require jenssegers/mongodb
  
 composer    "jenssegers/mongodb": "3.2",    composer update
  • サービスプロバイダ
  • の構成
    providers  : Jenssegers\Mongodb\MongodbServiceProvider::class,
    aliases  : 'Mongo' => Jenssegers\Mongodb\MongodbServiceProvider::class,
      Mongo     。
    
  • database(config/database.php)
  • を構成する
    connections   : 'mongodb' => 
    [ 
            //MongoDB 'driver' => 'mongodb', 
            'host' => '127.0.0.1', 
            'port' => 27017, 
            'username' => '', 
            'password' => '', 
            'database' => 'test', 
            //demodb 'options' => [] 
    ],
    
  • プロジェクトでの使用方法:
  • 1):DBクラスを使用して、対応する接続名をコードに直接接続し、対応する操作を行います.
    $mongodb = DB::connection('mongodb');  //   mongodb   
    $db = $mongodb->collection('user');    //   user   
    
    $db->insert(['title' => 'email', 'article' => '[email protected]','time' => time()]);
    //     
    
    dd($db->get());
    dd($db->where('title', 'email')->get());
    

    //関連データを取得する2).モデルに直接カプセル化することで、コードをより簡潔にすることができます.
    class TestModel extends Model
    {
        protected $table = 'user';
    
        public static function connectMongo($table)
        {
            return $users = DB::connection('mongodb')->collection($table);
        }
    }
    

    このようにコードで呼び出されたときに静的メソッドを使用してmongodb接続を取得し、関連操作を行い、デフォルトではMysqlデータベースを操作します.呼び出しコードの例は次のとおりです.
    $testModel = TestModel::connectMongo('user');
    $testModel->insert(['title' => 'email1', 'article' => '[email protected]','time' => time()]);
    
    dd($testModel->where('title', 'email1')->get());
    

    皆さんは私の個人サイトにアクセスできるのが好きです.http://www.yingminxing.com質問があれば、コミュニケーションを歓迎します:QQ:370399195、微信:yingminxing 1988