Tôi đã lùng sục một chút để tìm kiếm câu trả lời nhưng tôi chắc chắn rằng tôi đã mất những từ thích hợp để mô tả những gì tôi đang theo dõi.
Về cơ bản tôi có một bộ sưu tập mongodb được gọi là 'people' Lược đồ cho bộ sưu tập đó như sau:
people: {
name: String,
friends: [{firstName: String, lastName: String}]
}
Bây giờ, tôi có một ứng dụng thể hiện rất cơ bản kết nối với cơ sở dữ liệu và tạo thành công 'người' với một mảng bạn bè trống.
Ở vị trí thứ cấp trong ứng dụng, một biểu mẫu được đặt ra để thêm bạn bè. Biểu mẫu lấy trong FirstName và LastName và sau đó POST với trường tên cũng để tham chiếu đến đối tượng người thích hợp.
Điều tôi đang gặp khó khăn là tạo một đối tượng bạn bè mới và sau đó "đẩy" nó vào mảng bạn bè.
Tôi biết rằng khi tôi thực hiện việc này thông qua bảng điều khiển mongo, tôi sử dụng chức năng cập nhật với $ push làm đối số thứ hai của mình sau tiêu chí tra cứu, nhưng dường như tôi không thể tìm ra cách thích hợp để mongoose làm điều này.
db.people.update({name: "John"}, {$push: {friends: {firstName: "Harry", lastName: "Potter"}}});
CẬP NHẬT: Vì vậy, câu trả lời của Adrian rất hữu ích. Sau đây là những gì tôi đã làm để thực hiện mục tiêu của mình.
trong tệp app.js của mình, tôi đặt tuyến đường tạm thời bằng cách sử dụng
app.get('/addfriend', users.addFriend);
nơi tôi có tập tin 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}});
};