delete 부분에서 13:28 질문있습니다
194
14 asked
13:28 delete 부분에서 강의를 보면
const contact = await Contact.findById(id);
를 통해서 정보를 contact 변수에 할당하고
막상 deleteOne함수는 Contact에서 합니다
contact에서 deleteOne을 사용하면 안되나요?
Contact에서와 contact에서 deleteOne을 사용했을 때의 차이가 궁금하고
Contact에서 delete를 할 것이면 왜 굳이 새로운 변수에 할당을 해주는 것인지 궁금합니다
Answer 1
0
안녕하세요, 인프런 AI 인턴입니다.
bbin0409님의 질문과 관련하여, contact에서 deleteOne을 사용하는 것과 Contact에서 deleteOne을 사용하는 것의 차이에 대해 설명드리겠습니다.
Contact.findByIdAndUpdate(id) 또는 Contact.findById(id) 와 같이 Contact 모델을 통해 특정 데이터를 찾는 작업 이후에, 찾은 개별 문서에 대해 직접 작업을 수행할 때는 문서 인스턴스(contact 같은)를 사용합니다. 예를 들어, contact.save() 또는 contact.remove()와 같이요. 여기에서 contact.remove() 는 해당 문서 인스턴스를 데이터베이스에서 삭제합니다.
반면, Contact.deleteOne({ _id: id }) 또는 Contact.deleteMany({ condition })과 같이 Contact 모델에서 직접 삭제 관련 메서드를 호출할 때는, 특정 조건에 맞는 데이터를 모델 수준에서 직접 삭제합니다. 이는 문서 인스턴스를 직접 다루지 않고, 조건에 맞는 데이터를 직접 선택하여 삭제하는 방식입니다.
bbin0409님께서 질문하신 부분은 왜 Contact 모델을 통해 데이터를 찾은 후, contact.deleteOne()을 사용하지 않고 Contact.deleteOne을 사용하는지에 대한 부분으로 이해됩니다.
Contact.findById(id)를 통해 데이터를 찾는 과정은 특정 문서를 불러오는 작업이며, 이 작업을 통해 해당 문서에 접근하여 여러 조작을 할 수 있게 됩니다. 하지만 deleteOne()은 모델에서 직접 호출할 수 있는 정적 메서드이기 때문에, 개별 문서 인스턴스(contact)에서 직접 deleteOne()을 호출하는 것은 불가능합니다. 즉, 개별 문서를 삭제하고자 한다면 contact.remove()를 사용해야 하며, Contact.deleteOne()는 조건에 부합하는 문서를 모델 수준에서 바로 삭제할 때 사용합니다.
따라서 Contact에서 deleteOne을 사용하는 것은 데이터베이스에서 직접 조건에 맞는 문서를 삭제하려는 의도일 수 있으며, contact 변수에 할당하여 사용하는 이유는 해당 문서에 대해 더 다양한 작업을 수행하려는 경우가 아닐까 생각됩니다. 예를 들어, 삭제하기 전에 해당 데이터의 내용을 확인하거나, 다른 처리를 하기 위해선 문서 인스턴스가 필요할 수 있습니다.
3강 질문
0
18
1
74. 데이터 캐시 - 1 (이론) 강의 영상 누락
0
26
1
2강 nodejs 3단계 설명 질문
0
33
1
imagesLoaded에 관한 질문
0
19
2
useEffect와 lifecycle문의
0
26
2
프론트엔드 학습 수준 문의
0
37
2
몽고db security 설정
0
63
1
이 강의 들으려면 JS할 줄 알아야 하나요
0
87
1
db 테이블 생성할 때 변수에 받는 이유가 무엇인가요?
0
131
1
모듈을 내보내고 사용할 때 질문이 있습니다.
0
94
0
바디 파서 질문있습니다
0
85
0
로컬 호스트 접속이 안됩니다
0
507
1
8:34초 간단한 질문있습니다
0
228
1
에러 도와주세요
0
269
1
status 작성 이유가 궁금합니다
0
211
1
마지막에 라우트 경로에 대해서 질문이 있습니다
0
168
1
22강 연락처 추가하기 - css 파일 경로 지정
0
265
1
function1, 2에 대한 질문
0
236
1
localhost:3000 응답없음 문제
0
1827
1
EJS formatting
0
821
1
이강의는 컨트롤러가 안들어가는 이유가 있나요
0
400
1
관리자 로그인 쪽 작업하고 있는 무한루프에 빠져 오픈이 안됩니다.
0
372
1
updateContact 함수관련 문의
0
222
1
thunder client 문제
0
629
1

