Eu procurei MUITO procurando respostas, mas tenho certeza de que estou perdida pelas palavras certas para descrever o que estou procurando.
Basicamente, eu tenho uma coleção mongodb chamada 'people'. O esquema para essa coleção é o seguinte:
people: {
name: String,
friends: [{firstName: String, lastName: String}]
}
Agora, eu tenho um aplicativo expresso muito básico que se conecta ao banco de dados e cria com êxito 'pessoas' com uma matriz de amigos vazia.
Em um local secundário no aplicativo, existe um formulário para adicionar amigos. O formulário recebe firstName e lastName e, em seguida, POSTs com o campo name também para referência ao objeto de pessoas apropriado.
O que estou tendo dificuldade em criar é criar um novo objeto amigo e depois "empurrá-lo" para a matriz de amigos.
Eu sei que quando faço isso pelo console mongo, uso a função update com $ push como meu segundo argumento após o critério de pesquisa, mas não consigo encontrar a maneira apropriada de obter o mangusto para fazer isso.
db.people.update({name: "John"}, {$push: {friends: {firstName: "Harry", lastName: "Potter"}}});
ATUALIZAÇÃO: Então, a resposta de Adrian foi muito útil. A seguir, foi o que fiz para alcançar meu objetivo.
no meu arquivo app.js, defino uma rota temporária usando
app.get('/addfriend', users.addFriend);
onde no meu arquivo users.js eu tenho
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}});
};