sql >> Database teknologi >  >> NoSQL >> MongoDB

har mange forholdsproblemer i Laravel 5.3 + MongoDB-biblioteket 'jenssegers/laravel-mongodb'

i Mongo Eloquent, når du opretter mange til mange-relationer, behøver du ikke at have en pivottabel, det er SQL-tankegangen, i mongo-veltalende mange til mange relationer er fremmednøglerne gemt i arrays.Så modellerne skal se sådan ud:

<?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 også indlæse relationerne, før du prøver at hente dem

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

Du kan gemme relationen på samme måde som du gør det i hasMany-relationen

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


  1. Har brug for hjælp til konceptualisering i Redis/NoSQL

  2. MongoDB i Go med mgo, operatører med bson.M / bson.D fik altid syntaksfejl

  3. Redis vs Service Bus til pub/sub-scenarie

  4. hvordan man sletter et specifikt objekt fra array-objekt i MongoDB