He buscado SO mucho buscando la respuesta, pero estoy seguro de que no tengo las palabras correctas para describir lo que busco.
Básicamente tengo una colección mongodb llamada 'people'. El esquema para esa colección es el siguiente:
people: {
name: String,
friends: [{firstName: String, lastName: String}]
}
Ahora, tengo una aplicación express muy básica que se conecta a la base de datos y crea con éxito 'personas' con una matriz de amigos vacía.
En un lugar secundario de la aplicación, hay un formulario para agregar amigos. El formulario toma firstName y lastName y luego POSTs con el campo de nombre también para referencia al objeto de personas adecuado.
Lo que me cuesta trabajo es crear un nuevo objeto amigo y luego "empujarlo" a la matriz de amigos.
Sé que cuando hago esto a través de la consola de mongo, uso la función de actualización con $ push como mi segundo argumento después de los criterios de búsqueda, pero parece que no puedo encontrar la forma adecuada de obtener mangosta para hacer esto.
db.people.update({name: "John"}, {$push: {friends: {firstName: "Harry", lastName: "Potter"}}});
ACTUALIZACIÓN: Entonces, la respuesta de Adrian fue muy útil. Lo siguiente es lo que hice para lograr mi objetivo.
en mi archivo app.js, configuro una ruta temporal usando
app.get('/addfriend', users.addFriend);
donde en mi archivo users.js tengo
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}});
};