Przeszukałem TAK trochę, szukając odpowiedzi, ale jestem pewien, że brakuje mi odpowiednich słów, aby opisać, czego szukam.
Zasadniczo mam kolekcję mongodb o nazwie „people”. Schemat tej kolekcji jest następujący:
people: {
name: String,
friends: [{firstName: String, lastName: String}]
}
Teraz mam bardzo podstawową aplikację ekspresową, która łączy się z bazą danych i pomyślnie tworzy „ludzi” z pustą tablicą znajomych.
W drugorzędnym miejscu w aplikacji znajduje się formularz do dodawania znajomych. Formularz przyjmuje nazwy firstName i lastName, a następnie POST z polem nazwy również w celu odniesienia do odpowiedniego obiektu osób.
Trudno mi jest stworzyć nowy obiekt przyjaciela, a następnie „wypchnąć” go do tablicy znajomych.
Wiem, że kiedy robię to za pomocą konsoli mongo, używam funkcji aktualizacji z $ push jako drugim argumentem po kryteriach wyszukiwania, ale nie mogę znaleźć odpowiedniego sposobu, aby zmusić mongoose do zrobienia tego.
db.people.update({name: "John"}, {$push: {friends: {firstName: "Harry", lastName: "Potter"}}});
AKTUALIZACJA: Więc odpowiedź Adriana była bardzo pomocna. Oto, co zrobiłem, aby osiągnąć swój cel.
w moim pliku app.js ustawiłem trasę tymczasową za pomocą
app.get('/addfriend', users.addFriend);
gdzie w moim pliku users.js mam
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}});
};