sql >> Database >  >> NoSQL >> MongoDB

hasMany-relatieprobleem in Laravel 5.3 + MongoDB-bibliotheek 'jenssegers/laravel-mongodb'

in Mongo Eloquent bij het maken van Many to Many-relaties hoeft u geen draaitabel te hebben, dat is SQL-mindset, in Mongo-welsprekende Many to Many-relaties worden de externe sleutels opgeslagen in arrays.Dus de modellen zouden er als volgt uit moeten zien:

<?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');
    }
}  

U moet ook de relaties laden voordat u ze probeert op te halen

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

U kunt de relatie op dezelfde manier opslaan als in de hasMany-relatie

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


  1. MongoDB Query, vind alles op gebruikers-ID

  2. MEAN Stack Bestandsuploads

  3. MongoDB Zoek prestaties:enkele samengestelde index VS twee enkelvoudige veldindexen

  4. Geospatiaal zoeken op mangoest:afstand werkt niet