Disons que nous avons ce document:Ajouter une valeur à un tableau dans un document MongoDB
Array
(
[created_at] => 1373767280
[email] => [email protected]
[emailQueries] => Array
(
[21] => 1
)
[last_visit] => 1375033640
)
Pour mettre à jour le champ emailQueries
, je fais ça:
$updateEmailQueries['emailQueries']['22'] = 1;
$collection->update(array('email' => $user['email']), array('$set' => $updateEmailQueries));
Il met à jour, mais il remplace toujours l'élément existant dans le tableau (ie [21] => 1 deviendrait ici [22] => 1). Mon but est d'ajouter des valeurs au tableau, et le faire paraître comme par exemple:
[emailQueries] => Array
(
[21] => 1
[22] => 1
)
J'ai essayé d'ajouter une deuxième '$set'
, mais ne semble pas le faire.
Mise à jour:
J'ai essayé:
$updateEmailQueries['emailQueries']['21'] = 1;
$collection->update(array('email' => $user['email']),
array('$push' => $updateEmailQueries));
Et je reçois
Fatal error: Uncaught exception 'MongoCursorException' with message 'localhost:27017: Cannot apply $push/$pushAll modifier to non-array';
changement '' $ updateEmailQueries' à updateEmailQueries $ [ 'emailQueries'] ', ou à la ligne dans ma réponse. J'espère que cela aide. – drvdijk
Merci de votre aide. L'utilisation de ceci renvoie également une erreur fatale, la même que dans ma mise à jour de publication. – jSmith
Essayer votre modification. – jSmith