-
카테고리
-
세부 분야
풀스택
-
해결 여부
미해결
sub schema 업데이트 방법 질문합니다.
22.01.13 01:41 작성 조회수 213
0
const permissionSchema = new Schema({
page: { type: String },
permitted_users: [{
type: mongoose.Schema.Types.ObjectId,
ref: "User",
}],
});
const appSchema = new Schema({
name: { type: string },
permissions: [permissionSchema],
});
const userSchema = new Schema({
email: { type: string },
name: { type: string },
});
안녕하세요. 위의 스키마는 대략적인 필드만 나타낸 예시입니다. 여기서 파라미터(app_id, permission_id, user_id)를 클라이언트에서 받아서 permitted_users에 받은 user_id를 추가해주는 작업을 해주고 있습니다. (DB에 저장도 잘 됩니다.)
현재 controller와 service가 분리되어 있어서 controller에서 서비스로 addPermittedUser를 호출하면 업데이트된 결과를 받고 싶은데 어떻게 받아야할지 잘 모르겠습니다...
async와 await을 사용해서 return 도 해보았는데, MongooseError: Query was already executed 오류가 계속 발생해서 해결을 하지 못하고 있습니다...
// permissionService - addPermittedUser
exports.addPermittedUser = async (options) => {
const {app_id, permission_id, user_id } = options;
App.findById(app_id, (error, app) => {
if (error) {
console.log(error);
}
app.permissions.id(permission_id).permitted_users.push(user_id);
app.save();
});
};
접근 방향을 알려주실 수 있을까요?
답변을 작성해보세요.
0
조현영
지식공유자2022.01.13
업데이트는 되는데 컨트롤러에서 return 값을 못 받고 계신 건가요?
const app = await App.findById(app_id);
app.permissions...(user_id);
return app.save();
하시면 안 되나요?
답변 1