sql >> Databasteknik >  >> NoSQL >> MongoDB

har många relationsproblem i Laravel 5.3 + MongoDB-biblioteket 'jenssegers/laravel-mongodb'

i Mongo Eloquent när du skapar Many to Many-relationer behöver du inte ha en pivottabell, det är SQL-tänkesätt, i mongo-eloquent många till många relationer lagras de främmande nycklarna i arrayer.Så modellerna bör se ut så här:

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

Du bör också ladda relationerna innan du försöker hämta dem

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

Du kan spara relationen på samma sätt som du gör det i hasMany-relationen

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


  1. MongoDB, Flask, aggregat med $unwind-fråga

  2. Hur man ändrar shard-nyckeln

  3. Hur kontrollerar jag om ett index används

  4. Node.js upptäcker när två mangosfynd är klara