J'ai un petit problème, j'espère que vous pouvez m'aider. J'ai la prochaine structure de tableau dans MongoDB:Insérer des données dans le tableau interne dans MongoDB
{
"_id":ObjectId("4e43cf96e7c7914b87d2e0ff"),
"list" :[
{
"id" : ObjectId("4e43cf96e62883ee06000002"),
"user_name" : "login",
"comments" : [ ] //insert here new data
},
{
"id" : ObjectId("4e43cf96e62883ee06000003"),
"user_name" : "login",
"comments" : [ ]
}
]
}
Et je veux insérer de nouvelles données aux commentaires par « list.id ». Mais j'essaie comme ça:
$post_id = "4e43cf96e62883ee06000002";
$this->connection->user->feed->update(
array ('list.id' => new MongoId($post_id)),
array ('$push' => array ('list'=>array('comments'=>$data)))
)
Mais ce code créer un nouveau champ dans la structure, mais pas ajouter des données sur le terrain 'commentaires':
{
"_id":ObjectId("4e43cf96e7c7914b87d2e0ff"),
"list" :[
{
"id" : ObjectId("4e43cf96e62883ee06000002"),
"user_name" : "login",
"comments" : [ ] //insert here new data
},
{
"id" : ObjectId("4e43cf96e62883ee06000003"),
"user_name" : "login",
"comments" : [ ]
},
{
"comments" : { //added new field
//there is my data
}
]
}
Aussi j'ai essayé:
$this->connection->user->feed->update(
array ('list.id' => new MongoId($post_id)),
array ('$push' => array ('list.comments'=>$data))
);
Mais rien.
oui, vous avez raison;) merci beaucoup !! Et pouvez-vous me dire s'il vous plaît ce que char "$" signifie dans "liste. $. Commentaires"? Ou donnez-moi une référence? Merci! –
[Lien vers la documentation] (http://www.mongodb.org/display/DOCS/Updating#Updating-The%24positionaloperator) – Igorekk