Я хочу вставить массив в объект, как встраивать в коллекцию mongodb, как показано ниже и на следующем рисунке:
[
[
"lat"=> 59.56555555455,
"lon"=> 35.54598994564,
"type"=> "manual"
],...
]
![enter image description here](https://i.stack.imgur.com/Bujb4.png)
Для этого янаписал ниже код.Когда я использую 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);
без проблем :);