J'ai parcouru un bon bout de temps à la recherche de la réponse, mais je suis sûr que je suis perdu pour les bons mots pour décrire ce que je recherche.
Fondamentalement, j'ai une collection mongodb appelée `` people '' Le schéma de cette collection est le suivant:
people: {
name: String,
friends: [{firstName: String, lastName: String}]
}
Maintenant, j'ai une application express très basique qui se connecte à la base de données et crée avec succès des «personnes» avec un tableau d'amis vide.
Dans un emplacement secondaire de l'application, un formulaire est en place pour ajouter des amis. Le formulaire prend firstName et lastName, puis POSTs avec le champ de nom également pour faire référence à l'objet de personnes approprié.
Ce que j'ai du mal à faire, c'est de créer un nouvel objet ami et de le «pousser» dans le tableau des amis.
Je sais que lorsque je fais cela via la console mongo, j'utilise la fonction de mise à jour avec $ push comme deuxième argument après les critères de recherche, mais je n'arrive pas à trouver le moyen approprié pour que la mangouste fasse cela.
db.people.update({name: "John"}, {$push: {friends: {firstName: "Harry", lastName: "Potter"}}});
MISE À JOUR: Donc, la réponse d'Adrian a été très utile. Voici ce que j'ai fait pour atteindre mon objectif.
dans mon fichier app.js, j'ai défini un itinéraire temporaire en utilisant
app.get('/addfriend', users.addFriend);
où dans mon fichier users.js j'ai
exports.addFriend = function (req, res, next)
{
var friend = {"firstName": req.body.fName, "lastName": req.body.lName};
Users.findOneAndUpdate({name: req.user.name}, {$push: {friends: friend}});
};