Я так хорошо искал ответ в поисках ответа, но уверен, что потерян для правильных слов, чтобы описать, что мне нужно.
По сути, у меня есть коллекция mongodb под названием «people». Схема для этой коллекции следующая:
people: {
name: String,
friends: [{firstName: String, lastName: String}]
}
Теперь у меня есть очень простое экспресс-приложение, которое подключается к базе данных и успешно создает «людей» с пустым массивом друзей.
На втором месте в приложении находится форма для добавления друзей. Форма принимает firstName и lastName, а затем POST с полем имени также для ссылки на соответствующий объект people.
Что мне тяжело делать, так это создать новый объект друзей и затем «протолкнуть» его в массив друзей.
Я знаю, что когда я делаю это через консоль Монго, я использую функцию обновления с $ push в качестве второго аргумента после критерия поиска, но я не могу найти подходящий способ заставить Мангуста сделать это.
db.people.update({name: "John"}, {$push: {friends: {firstName: "Harry", lastName: "Potter"}}});
ОБНОВЛЕНИЕ: Итак, ответ Адриана был очень полезным. Вот что я сделал, чтобы достичь своей цели.
В моем файле 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}});
};