Push Elemente in Mongo Array über Mungo

Ich habe SO ein gutes Stück nach der Antwort gesucht, aber ich bin mir sicher, dass mir die richtigen Worte fehlen, um zu beschreiben, wonach ich suche.

rundsätzlich habe ich eine Mongodb-Sammlung namens 'people'. Das Schema für diese Sammlung lautet wie folgt:

people: {
         name: String, 
         friends: [{firstName: String, lastName: String}]
        }

Jetzt habe ich eine sehr einfache Expressanwendung, die eine Verbindung zur Datenbank herstellt und erfolgreich "Personen" mit einem leeren Freunde-Array erstellt.

An einer zweiten Stelle in der Anwendung befindet sich ein Formular zum Hinzufügen von Freunden. Das Formular enthält den Vor- und Nachnamen sowie POSTs mit dem Namensfeld, um auch auf das richtige People-Objekt zu verweisen.

Was mir schwerfällt, ist, ein neues Friend-Objekt zu erstellen und es dann in das Friends-Array zu "pushen".

Ich weiß, dass ich, wenn ich dies über die Mongo-Konsole tue, die Update-Funktion mit $ push als zweitem Argument nach den Suchkriterien verwende, aber ich kann anscheinend keinen geeigneten Weg finden, Mungo dazu zu bringen.

db.people.update({name: "John"}, {$push: {friends: {firstName: "Harry", lastName: "Potter"}}});

AKTUALISIEREN Also, die Antwort von Adrian war sehr hilfreich. Folgendes habe ich getan, um mein Ziel zu erreichen.

in meiner app.js-Datei stelle ich mit @ eine temporäre Route e

app.get('/addfriend', users.addFriend);

berall in meiner users.js-Datei habe ich

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}});
};

Antworten auf die Frage(8)

Ihre Antwort auf die Frage