Tak długo szukałem odpowiedzi, ale jestem pewien, że straciłem dobre słowa, żeby opisać, o co mi chodzi.Wepchaj przedmioty do tablicy mongo poprzez mangustę
Zasadniczo mam kolekcję MongoDB nazwie Schemat „Ludzie” dla tej kolekcji jest następujący:
people: {
name: String,
friends: [{firstName: String, lastName: String}]
}
Teraz mam bardzo podstawowe wyraźnej aplikację, która łączy się z bazą danych i skutecznie tworzy „ludzi "z pustą tablicą przyjaciół.
W drugim miejscu w aplikacji znajduje się formularz umożliwiający dodawanie znajomych. Formularz przyjmuje imię i nazwisko, a następnie POSTs z polem nazwy również w celu odniesienia do właściwego obiektu osób.
Trochę ciężko pracuję, tworząc nowy obiekt znajomego, a następnie "przesuwając" go do tablicy przyjaciół.
Wiem, że kiedy robię to za pośrednictwem konsoli mongo, używam funkcji aktualizacji z $ push jako mojej drugiej argumentacji po kryteriach wyszukiwania, ale nie mogę znaleźć właściwego sposobu na uzyskanie mangusty, aby to zrobić.
db.people.update({name: "John"}, {$push: {friends: {firstName: "Harry", lastName: "Potter"}}});
UPDATE: Więc odpowiedź Adrian był bardzo pomocny. Oto, co zrobiłem, aby osiągnąć mój cel.
w moim pliku app.js, ustawić tymczasową trasę korzystając
app.get('/addfriend', users.addFriend);
gdzie w moich users.js złożyć 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}});
};
Widzę, że mogę potencjalnie użyć metody collections.findOneAndUpdate(), ale nie jestem pewien, gdzie ją zaimplementuję? W moim modelu? – Neurax