Я использую Mongo DB и Slim PHP в своем приложении.Массив объектов
В Монго У меня есть этот массив объектов
"dashboards" : [
{
"_id" : ObjectId("52b96365481b9c02091d8698"),
"title" : "Default title",
"subtitle" : "Default subtitle",
"metric_views" : [ ]
},
{
"_id" : ObjectId("52b9665f481b9c06091d8698"),
"title" : "asdasdasd",
"subtitle" : "asdasdasdas",
"metric_views" : [ ]
},
{
"_id" : ObjectId("52b96666481b9c04091d8697"),
"title" : "asdasdas",
"subtitle" : "dasdasdas",
"metric_views" : [ ]
}
]
и для удаления Я написал эту функцию
function removeDashboard ($user,$dashboardMongoId) {
foreach ($user['dashboards'] as $key => $dashboard) {
if($user['dashboards'][$key]['_id']==$dashboardMongoId) {
unset($user['dashboards'][$key]);
break;
}
}
return $user['dashboards'];
}
после удаления одного объекта мои приборные панели выглядит следующим образом
"dashboards" : {
"1" : {
"_id" : ObjectId("52b9665f481b9c06091d8698"),
"title" : "asdasdasd",
"subtitle" : "asdasdasdas",
"metric_views" : [ ]
},
"2" : {
"_id" : ObjectId("52b96666481b9c04091d8697"),
"title" : "asdasdas",
"subtitle" : "dasdasdas",
"metric_views" : [ ]
}
}
[ ] становятся {}, и я получаю номер для объектов «1», «2», но все приложение отлично справляется с этим. Кто-нибудь знает, почему это происходит, и я должен исправить это или нормально, чтобы так?
Спасибо!
UPDATE:
Im приборная панель, если нет Щитков в массиве может быть, то будет проблема при создании по умолчанию, вот код для этого
$app->get('/getDashboards', function() {
// Connect to database and select collection for loged in user
$collection = selectMongoCollection('ctstats', 'users');
$user = findLoggedUser($collection);
// Get all dashboards for user
$data = $user['dashboards'];
if(sizeof($user['dashboards']) == 0) {
// Creating default dashboard
$dashboard = array(
"_id" => new MongoId(),
"title" =>"Default title",
"subtitle" =>"Default subtitle",
"metric_views" => array()
);
// Saving dashboard to collection
array_push($user['dashboards'],$dashboard);
// Updating mongo with new data
$collection->update($user,$user['dashboards']);
$collection->save($user);
}
echo json_encode($user['dashboards']);
});
, как это сделать в этом примере? –