MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Vấn đề về mối quan hệ hasMany trong thư viện Laravel 5.3 + MongoDB 'jenssegers / laravel-mongodb'

trong Mongo Eloquent khi tạo mối quan hệ Nhiều đến Nhiều, bạn không cần phải có bảng tổng hợp, đó là tư duy SQL, trong quan hệ nhiều đến nhiều trong mongo-eloquent các khóa ngoại được lưu trữ trong mảng. Vì vậy, các mô hình sẽ trông như thế này:

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

Ngoài ra, bạn nên tải các mối quan hệ trước khi cố gắng truy xuất chúng

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

Bạn có thể lưu quan hệ giống như cách bạn làm trong quan hệ hasMany

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm thế nào để điền trong trường hợp này Mongoose?

  2. Sử dụng bluebird cho mongoose, got .bind không phải là một hàm

  3. hiệu suất đọc / ghi mongodb và lưu trữ mongo trên đám mây

  4. Cách upert với mongodb-java-driver

  5. Metaclass deligate không phải là phiên bản