ฉันค้นหาคำตอบแล้ว แต่ฉันแน่ใจว่าฉันหายไปเพราะคำพูดที่ถูกต้องเพื่ออธิบายสิ่งที่ฉันตามมา
โดยทั่วไปฉันมีคอลเลกชัน MongoDB ที่เรียกว่า 'people' schema สำหรับการรวบรวมนั้นมีดังนี้:
people: {
name: String,
friends: [{firstName: String, lastName: String}]
}
ตอนนี้ฉันมีแอปพลิเคชันด่วนขั้นพื้นฐานที่เชื่อมต่อกับฐานข้อมูลและสร้าง 'คน' ด้วยอาร์เรย์เพื่อนที่ว่างเปล่าได้สำเร็จ
ในตำแหน่งรองในแอปพลิเคชันจะมีแบบฟอร์มเพื่อเพิ่มเพื่อน แบบฟอร์มที่ใช้ในชื่อและนามสกุลจากนั้นโพสต์พร้อมกับฟิลด์ชื่อยังสำหรับการอ้างอิงถึงวัตถุคนที่เหมาะสม
สิ่งที่ฉันกำลังลำบากในการทำคือการสร้างวัตถุเพื่อนใหม่แล้ว "ผลัก" วัตถุนั้นลงในอาร์เรย์เพื่อน
ฉันรู้ว่าเมื่อฉันทำสิ่งนี้ผ่านทางคอนโซล mongo ฉันใช้ฟังก์ชั่นอัพเดทด้วย $ push เป็นอาร์กิวเมนต์ที่สองของฉันหลังจากเกณฑ์การค้นหา แต่ฉันไม่สามารถหาวิธีที่เหมาะสมเพื่อให้พังพอนทำเช่นนี้
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}});
};