Я искал SO, хорошо разбираюсь в ответе, но я уверен, что я потерялся за правильные слова, чтобы описать, что мне нужно.
В основном у меня есть коллекция mongodb, называемая "люди" Схема для этой коллекции выглядит следующим образом:
people: {
name: String,
friends: [{firstName: String, lastName: String}]
}
Теперь у меня есть очень простой экспресс-приложение, которое подключается к базе данных и успешно создает "людей" с пустым массивом друзей.
В дополнительном месте приложения есть форма для добавления друзей. Форма принимает firstName и lastName, а затем POSTs с полем имени также для ссылки на правильный объект people.
То, что мне сложно делать, это создать новый объект-друга, а затем "подталкивать" его в массив друзей.
Я знаю, что когда я это делаю через консоль mongo, я использую функцию обновления с $push в качестве моего второго аргумента после критериев поиска, но я не могу найти подходящий способ получить mongoose для этого.
db.people.update({name: "John"}, {$push: {friends: {firstName: "Harry", lastName: "Potter"}}});
UPDATE: Итак, ответ Адриана был очень полезен. Следующее - это то, что я сделал для достижения моей цели.
в моем файле app.js, я устанавливаю временный маршрут, используя
app.get('/addfriend', users.addFriend);
где в моем файле 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}});
};