Comment append de nouveaux objects dans un tableau nested pour mongodb en utilisant node.js?

J’ai la structure de firebase database suivante stockée dans le mongoDB:

"location" : "Halifax", "students" : [ { "name": "Mike", "ID": "B00123456", "images": [ { "image_url":"", "image_id":"" } ] }, { "name": "Rinan", "ID": "B00999999", "images": [ { "image_url":"", "image_id":"" } ] } ] 

Ma question est la suivante: comment insérer un nouvel object dans un tableau d’images à l’intérieur d’un élève nommé Mike, dont l’ID est “B00123456”, je sais que je devrais utiliser la méthode update et set de mongoDB. Mais je ne pouvais tout simplement pas trouver un moyen d’y parvenir. Le résultat que je veux est:

 "location" : "Halifax", "students" : [ { "name": "Mike", "ID": "B00123456", "images": [ { "image_url":"", "image_id":"" }, { "image_url":"www.example.com", "image_id":"uqxhqbxqx_1219" } ] }, { "name": "Rinan", "ID": "B00999999", "images": [ { "image_url":"", "image_id":"" } ] } ] 

Ci-dessous, voici ce que j’essaie d’utiliser la mise à jour et la configuration de MongoDB:

  // Connect and create a new doc MongoClient.connect('mongodb://username:password@iad1- mongos0.objectrocket.com:someNode/db_name', functionb(err, db) { if (err) { console.dir(err); console.log("error connected to mongodb"); } else { var collection = db.collection('student_info_collection'); var student_name = req.body.name; var student_id = req.body.ID; collection.update( { location:"Halifax" }, { ID:student_id} { name: student_name}, {$push: { { "images": [ { "image_url":"www.example.com", "image_id":"uqxhqbxqx_1219" } ] } } }, function(err,result){ if (err) console.log("Something's wrong"); else res.sendStatus(200); } ); } }); 

De l’aide?

La fonction update() est

  update(selector, document[, options][, callback]) 

Le premier paramètre est le selector , veuillez essayer celui-ci.

  var student_name = req.body.name; var student_id = req.body.ID; collection.update( { location:"Halifax", 'students.ID': student_id, 'students.name': student_name}, {$push: { "students.$.images": { "image_url":"www.example.com", "image_id":"uqxhqbxqx_1219" } } }, function(err,result){