나는 대답을 찾기 위해 약간을 닦았지만, 내가 따르는 것을 설명하기 위해 올바른 단어를 잃어 버릴 것이라고 확신합니다.
기본적으로 'people'라는 mongodb 컬렉션이 있습니다. 해당 컬렉션의 스키마는 다음과 같습니다.
people: {
name: String,
friends: [{firstName: String, lastName: String}]
}
이제 데이터베이스에 연결하고 빈 friends 배열로 'people'을 성공적으로 만드는 매우 기본적인 Express 응용 프로그램이 있습니다.
응용 프로그램의 보조 장소에는 친구를 추가 할 수있는 양식이 있습니다. 양식은 firstName과 lastName을 취한 다음 적절한 사람 오브젝트를 참조하기 위해 name 필드를 가진 POST를 취합니다.
내가 겪고있는 일은 새로운 친구 개체를 만든 다음 그것을 friends 배열에 "푸시"하는 것입니다.
mongo 콘솔을 통해이 작업을 수행 할 때 조회 기준 후 두 번째 인수로 $ push와 함께 업데이트 기능을 사용하지만 mongoose 가이를 수행하는 적절한 방법을 찾지 못하는 것 같습니다.
db.people.update({name: "John"}, {$push: {friends: {firstName: "Harry", lastName: "Potter"}}});
업데이트 : Adrian의 답변은 매우 도움이되었습니다. 다음은 목표를 달성하기 위해 내가 한 일입니다.
내 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}});
};