MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

hasMany проблем с връзката в Laravel 5.3 + 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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:Как да получите отделен списък със стойности на полета на поддокумента?

  2. Обновяване на страницата на Meteor с щракване върху бутон

  3. Активирайте разширението mongo PHP в уебсайтовете на Microsoft Azure

  4. Laravel 5 изпълнява агрегиране с mongodb on where клауза

  5. Mongodb:връща съответстващи филтри при използване на $or в find()