Ho cercato così bene la ricerca della risposta, ma sono sicuro di aver perso le parole giuste per descrivere ciò che sto cercando.
Fondamentalmente ho una collezione mongodb chiamata 'people' Lo schema per quella collezione è il seguente:
people: {
name: String,
friends: [{firstName: String, lastName: String}]
}
Ora ho un'applicazione express di base che si collega al database e crea con successo "persone" con un array di amici vuoto.
In un posto secondario nell'applicazione, è presente un modulo per aggiungere amici. Il modulo accetta firstName e lastName e quindi i POST con il campo name anche per riferimento all'oggetto people corretto.
Quello che sto facendo fatica a fare è creare un nuovo oggetto amico e poi "spingerlo" nella matrice degli amici.
So che quando lo faccio tramite la console mongo uso la funzione di aggiornamento con $ push come secondo argomento dopo i criteri di ricerca, ma non riesco a trovare il modo appropriato per ottenere mongoose per farlo.
db.people.update({name: "John"}, {$push: {friends: {firstName: "Harry", lastName: "Potter"}}});
AGGIORNAMENTO: Quindi, la risposta di Adrian è stata molto utile. Quello che segue è quello che ho fatto per raggiungere il mio obiettivo.
nel mio file app.js, ho impostato un percorso temporaneo utilizzando
app.get('/addfriend', users.addFriend);
dove ho nel mio file users.js
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}});
};