Я новичок в MongoDB
и использую пакет jenssegers/laravel-mongodb
для построения API.
Возникла проблема при обновлении и удалении записей в массиве.
Вот мой код обновления с использованием foreach
foreach ($event->volunteers as $key => $volunteer) {
if ($volunteer['user_id'] == $request->user_id) {
$event->where('volunteers.user_id', $request->user_id)
->update(["volunteers.$key.attendance_status" => $request->attendance_status
]);
}
}
Вот тот же код с Pull
Event::where('volunteers.user_id', $request->user_id)->push('volunteers', [
'attendance_status' => $request->attendance_status
], true);
Вот код сброса
foreach ($event->volunteers as $key => $volunteer) {
if ($volunteer['user_id'] == $request->user_id) {
$event->where('volunteers.user_id', $request->user_id)
->unset(
"volunteers.$key.attendance_status");
}
}
Никто из них не работает
Моя структура БД
"volunteers" : [
{
"user_id" : NumberInt(1),
"name" : "Prafful K Panwar",
"skills" : [
"Plumber",
"Carpenter"
],
"incentives" : {
"tshirt_size" : "XXL"
},
"ready_to_contribute_min_amount" : "Yes",
"attendance_status" : false
},
{
"user_id" : NumberInt(2),
"name" : "Prafful Panwar",
"skills" : [
"Plumber"
],
"incentives" : {
"tshirt_size" : "XXL"
},
"ready_to_contribute_min_amount" : "Yes",
"attendance_status" : false
}
]
Буду очень признателен за любые советы, помощь и предложения.
Спасибо:)