私は答えを探してSOを精査しましたが、自分が何を求めているのかを説明するための適切な言葉を見つけられなかったと確信しています。
基本的に私は 'people'という名前のmongodbコレクションを持っています。そのコレクションのスキーマは次のとおりです。
people: {
name: String,
friends: [{firstName: String, lastName: String}]
}
これで、データベースに接続し、空の友達配列を持つ「人」を正常に作成する、非常に基本的な高速アプリケーションがあります。
アプリケーションの2番目の場所には、友達を追加するためのフォームが用意されています。フォームはfirstNameとlastNameを取り込んでから、適切なピープルオブジェクトを参照するために名前フィールドを含むPOSTを受け取ります。
私が苦労しているのは、新しいフレンドオブジェクトを作成して、それをフレンド配列に「プッシュ」することです。
mongo consoleを使用してこれを行う場合、ルックアップ基準の後に2番目の引数として$ pushを指定してupdate関数を使用しますが、mongooseにこれを行う適切な方法を見つけることができないようです。
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}});
};