Laravel - mongodb insertMany (отношение вставки) не фиксирует - PullRequest
0 голосов
/ 22 октября 2018

Я хочу вставить массив в объект, как встраивать в коллекцию mongodb, как показано ниже и на следующем рисунке:

[ 
  [
        "lat"=> 59.56555555455,
        "lon"=> 35.54598994564,
        "type"=> "manual"
  ],...
 ]

enter image description here

Для этого янаписал ниже код.Когда я использую foreache, это сработало, но когда я хочу использовать InsertMany с необработанным журналом запросов, оно показывает мне вставленные объекты, но когда я проверяю базу данных, никакие изменения не фиксируются !!!Где моя ошибка?

log :

InsertManyResult {#302
-writeResult: WriteResult {#301}
-insertedIds: array:3 [
0 => ObjectId {#297
  +"oid": "5bcd6d636925022398005981"
}
1 => ObjectId {#281
  +"oid": "5bcd6d636925022398005982"
}
2 => ObjectId {#298
  +"oid": "5bcd6d636925022398005983"
}
 ]
 -isAcknowledged: true
}```

код :

    $userTraffic = Auth::user()->userTraffic()->firstOrFail();

    if ($userTraffic) {

     $userTraffic->traffics()->raw( function ( $collection ) use ($traffic) {

            $data= $collection->insertMany($traffic);
            dd($data);
            return $data;
        });

        /*  foreach ($traffic as $field) {
              $userTraffic->traffics()->create($field);
          }*/

        return response(['status'=>true,'UserID:'=> Auth::id(),'data'=>$traffic,'insert'=>$userTraffic], 200);
    }
    else return response(['status'=>false,'message'=>'traffic\'s user not found'], 404);



}

- ответ:

просто используйте $userTraffic->traffics()->createMany($traffic); без проблем :);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...