MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Problem z relacjami hasMany w Laravel 5.3 + biblioteka MongoDB 'jenssegers/laravel-mongodb'

w Mongo Eloquent podczas tworzenia relacji wiele do wielu nie trzeba mieć tabeli przestawnej, to jest sposób myślenia SQL, w mongo-eloquent wiele do wielu relacji klucze obce są przechowywane w tablicach.Więc modele powinny wyglądać tak:

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

Powinieneś także załadować relacje przed próbą ich odzyskania

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

Możesz zapisać relację w ten sam sposób, w jaki robisz to w relacji hasMany

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Agregacja Mongodb wiersze do kolumn

  2. Sortuj według wielu pól razem w mongodb

  3. MongoDB z redis

  4. jak ustawić klucz przez var w manguście,Node.js?

  5. Deserializacja interfejsu w MongoDB przy użyciu C# - Nieznana wartość dyskryminatora