sql >> データベース >  >> NoSQL >> MongoDB

Laravel5.3のhasMany関係の問題+MongoDBライブラリ'jenssegers/ laravel-mongodb'

    Mongo Eloquentでは、多対多の関係を作成するときに、SQLの考え方であるピボットテーブルを用意する必要はありません。mongo-eloquentの多対多の関係では、外部キーは配列に格納されます。したがって、モデルは次のようになります。

    <?php namespace App\Models;
    
    use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
    
    class Employee extends Eloquent {
    
        protected $collection = 'employee';
        protected $primaryKey = '_id';
    
        public function tasks()
        {
            return $this->belongsToMany('App\Models\Task');
        }
    }
    
    
    
    
    
    <?php namespace App\Models;
    
    use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
    
    class Task extends Eloquent {
    
        protected $collection = 'task';
        protected $primaryKey = '_id';
    
        public function employees()
        {
            return $this->belongsToMany('App\Models\Employee');
        }
    }  
    

    また、リレーションを取得する前に、リレーションをロードする必要があります

     $employee= Employee::with('tasks')->find('586ca8c71a72cb07a681566d')->tasks;
    

    hasManyリレーションで行うのと同じ方法でリレーションを保存できます

    $employee->tasks()->save(new Task());
    


    1. HadoopのHDFSで名前ノードの自動フェイルオーバーとは何ですか?

    2. MongoDBとNodeJをバッチ挿入

    3. resque-schedulerがジョブの削除に失敗する

    4. 1対多の関係を持つマングースドキュメント参照