I need to know how I can insert an array (that was obtained from a MySQL query) to mongodb (it should be inserted in the same way in mongodb as an array), this is what I have done but it does not keep me as it should be.
public function createGrupoDefault($request)
{
if(JWTAuth::getToken()){
$user_id = JWTAuth::toUser()->id;
}
$instancia_id = \DB::select("
SELECT instancias.id
FROM users
JOIN instanciausers ON instanciausers.user_id = users.id
JOIN instancias ON instanciausers.instancia_id = instancias.id
JOIN role_user ON role_user.user_id = users.id
JOIN roles ON role_user.role_id = roles.id
WHERE instanciausers.user_id = ".$user_id."
");
$existe = \Mongo::get()->GoCargo->flota_favoritos->findOne(
[
"empresa" => intval($instancia_id[0]->id),
"grupo" => "Default"
],[
"_id" => true
]
);
if ($existe) {
return "Ya existe un grupo con ese nombre";
}
$request = \Mongo::get()->GoCargo->flota_favoritos->insertOne(
[
"empresa" => $instancia_id[0]->id,
"grupo" => "Default"
]
);
$usuarios = $this->flota
->join('users','flotafavoritos.user_id','users.id')
->join('instanciausers', 'users.id', 'instanciausers.user_id')
->join('instancias','instanciausers.instancia_id','instancias.id')
->join('personas', 'flotafavoritos.persona_id', 'personas.id')
->select(
'personas.id'
)
->where('instanciausers.instancia_id', $instancia_id[0]->id)
->get();
$usuarios = $usuarios->toArray();
foreach ($usuarios as $usuario) {
$reg = \Mongo::get()->GoCargo->flota_favoritos->findOne(
[
"id_user" => $usuario
],[
"projection" => [
"id_user" => true
]
]);
if(!$reg){
$reg = \Mongo::get()->GoCargo->flota_favoritos->addToSet(
[
"id_user" => $usuario
]);
}
}
return "El grupo fue creado con existo!";
} #fin createGrupoDefault