Ich habe SO ein gutes Stück nach der Antwort gesucht, aber ich bin mir sicher, dass ich nicht die richtigen Worte gefunden habe, um zu beschreiben, wonach ich suche.
Grundsä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 Express-Anwendung, die eine Verbindung zur Datenbank herstellt und erfolgreich "Personen" mit einem leeren Freundes-Array erstellt.
An einer sekundären Stelle in der Anwendung befindet sich ein Formular zum Hinzufügen von Freunden. Das Formular enthält Vorname und Nachname sowie POSTs mit dem Namensfeld, um auch auf das richtige Personenobjekt zu verweisen.
Es fällt mir schwer, ein neues Friend-Objekt zu erstellen und es dann in das Friends-Array zu "verschieben".
Ich weiß, dass ich, wenn ich dies über die Mongo-Konsole mache, die Update-Funktion mit $ push als zweites Argument nach den Suchkriterien verwende, aber ich kann anscheinend keinen geeigneten Weg finden, um Mungo dazu zu bringen, dies zu tun.
db.people.update({name: "John"}, {$push: {friends: {firstName: "Harry", lastName: "Potter"}}});
UPDATE: Also war Adrians Antwort sehr hilfreich. Folgendes habe ich getan, um mein Ziel zu erreichen.
In meiner Datei app.js habe ich mithilfe eine temporäre Route festgelegt
app.get('/addfriend', users.addFriend);
wo in meiner Datei users.js 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}});
};