Использование attach должно правильно обновить обе таблицы, например:

аюсь использовать отношение ownToMany следующим образом: Модель с отношением ownToMany:

namespace App\Models;
use Illuminate\Notifications\Notifiable;
use Laravel\Passport\HasApiTokens;
class Notification extends \Jenssegers\Mongodb\Eloquent\Model
{
    use Notifiable, HasApiTokens;
    protected $collection = 'myDb.notifications';
    protected $fillable = [ ];
    protected $hidden = [  ];

    /**
    * List of involved users
    */
    public function participants()
    {
      return $this->belongsToMany(User::class);
    }
}

Создание модели:

$notification=new Notification();
....
$notification->participants()->attach(["5b13fb4393782d5e9010835d","5b13146f93782d29254c8cb2"]);
$notification->save();

дает:

{
    ......
    "user_ids": [
        "5b13fb4393782d5e9010835d",
        "5b13146f93782d29254c8cb2"
    ],
    "updated_at": "2018-06-07 12:32:19",
    "created_at": "2018-06-07 12:32:19",
    "_id": "5b1925d393782d24b4514a16"
}

Таким образом, идентификаторы прикрепляются правильно, однако, когда я пытаюсь загрузить их с помощью:

Notification::where('_id','=','5b1925d393782d24b4514a16')->with(['participants'])->get()

Я получаю пустой массив для отношения:

[
    {
        "_id": "5b1925d393782d24b4514a16",
        ....
        "updated_at": "2018-06-07 12:32:19",
        "created_at": "2018-06-07 12:32:19",
        "participants": []
    }
]

Я также проверил, что данные пользователи действительно существуют и должны быть «загружаемыми», используя:

User::whereIn('_id',["5b13fb4393782d5e9010835d","5b13146f93782d29254c8cb2"])->get()

Что дает двум пользователям, как ожидалось ....

Ответы на вопрос(2)

Ваш ответ на вопрос