MongoDB 데이터베이스 삽입,업데이트,삭제 작업 에 대한 자세 한 설명

1.삽입 동작
Insert 작업 은 MongoDB 가 데 이 터 를 삽입 하 는 기본 적 인 방법 으로 대상 집합 에 Insert 작업 을 사용 하면 이 문 서 를 MongoDB 에 추가 하고 해당 하 는 ID 키 를 자동 으로 생 성 합 니 다.문서 구 조 는 JSON 과 유사 한 BSON 형식 을 사용 합 니 다.흔히 볼 수 있 는 삽입 작업 은 주로 단일 삽입 과 대량 삽입 두 가지 형식 이 있다.삽입 할 때 문 서 를 데이터베이스 에 간단하게 저장 할 뿐 추가 검증 을 하지 않 고 코드 를 실행 하지 않 기 때문에 주입식 공격 의 가능성 은 존재 하지 않 습 니 다.
1.단일 삽입

2.대량 삽입
MongoDB 의 일괄 삽입 지원 은 여러 문서 로 구 성 된 배열 을 데이터베이스 로 전달 함으로써 이 루어 진다.데 이 터 를 삽입 하 는 것 은 TCP 요청 을 보 내 는 것 이기 때문에 하나의 TCP 요청 만 보 내 고 데이터 베 이 스 는 대량의 메시지 헤드 를 처리 하지 않 아 도 되 며 삽입 시간 을 줄 일 수 있 습 니 다.이 방식 의 대량 삽입 은 한 번 에 여러 개의 문 서 를 한 집합 에 만 삽입 할 수 있 으 며,여러 집합 에 삽입 하면 Insert 작업 을 순환 적 으로 호출 할 수 있 습 니 다.

2.제거 작업
reove 함 수 는 데 이 터 를 삭제 하 는 데 사용 할 수 있 습 니 다.문 서 를 선택 할 수 있 는 매개 변수 로 받 아들 일 수 있 습 니 다.조건 에 맞 는 문서 만 삭 제 됩 니 다.데 이 터 를 삭제 하 는 것 은 영구적 이 며 취소 할 수도 회복 할 수도 없 으 니 신중 해 야 한다.문 서 를 삭제 하려 면 전체 집합 을 비 워 야 합 니 다.집합 을 직접 삭제 하 는 것 이 빠 릅 니 다.

3.업데이트 작업
update 함 수 는 데이터베이스 에 있 는 데 이 터 를 수정 하 는 데 사 용 됩 니 다.하 나 는 문 서 를 조회 하 는 것 입 니 다.다른 하 나 는 수정 기 문 서 를 찾 는 것 입 니 다.찾 은 문 서 를 어떻게 수정 하 는 지 설명 하 는 데 사 용 됩 니 다.업데이트 작업 은 원자 적 이 며,여러 업데이트 가 동시에 발생 하면 모든 업데이트 가 실행 되 지만,마지막 업 데 이 트 는 최종 승자 입 니 다.
1.전체 업데이트(문서 교체)

2.부분 업데이트(수정 기)
 일부 업 데 이 트 는 원자의 업데이트 수정 기 를 통 해 이 루어 집 니 다.수정 기 를 사용 할 때'id"의 값 은 변경 할 수 없습니다.다른 모든 값 은 변경 할 수 있 습 니 다.문서 교 체 는 모든 값 을 바 꿀 수 있 습 니 다.
 $inc 수정 기:지정 한 속성의 값 을 특정한 보폭 으로 늘 리 고 키 가 존재 하지 않 으 면 만 듭 니 다.

$set 수정 기:키 의 값 을 지정 합 니 다.존재 하지 않 으 면 만 듭 니 다.

$push:배열 수정 기 는 지정 한 키 가 존재 하면 기 존 배열 의 끝 에 요 소 를 추가 하고 키 가 존재 하지 않 으 면 새 배열 을 만 듭 니 다.

3.upsert 작업
upsert 작업 은 saveorUpdate 기능 을 가지 고 있 습 니 다.문서 가 업데이트 조건 에 부합 되 지 않 으 면 업데이트 조건 과 업데이트 문 서 를 바탕 으로 새로운 문 서 를 만 듭 니 다.업데이트 조건 에 맞 는 문서 가 있 으 면 정상적으로 업 데 이 트 됩 니 다.새 문 서 를 만 들 때 조건 부 문 서 를 바탕 으로 수정 기 를 사용 합 니 다.upsert 작업 은 원자 적 이 고 효율 적 입 니 다.

4.대량 업데이트
일괄 업 데 이 트 는 update 의 네 번 째 인 자 를 true 로 설정 하면 됩 니 다.
순간 완성
위의 삽입,삭제,업데이트 작업 은 모두 순식간에 완 성 된 것 이 므 로 데이터베이스 응답 을 기다 릴 필요 가 없습니다.이러한 실현 은 고성능 을 얻 을 수 있 고 속도 가 매우 빠 르 며 클 라 이언 트 의 전송 속도 와 네트워크 속도 의 제약 만 받는다.그러나 서버 상 태 를 가 져 올 수 없 기 때문에 작업 이 순조롭게 끝 날 것 이 라 고 장담 할 수 없습니다.이것 은 비용 지불 시스템 에 있어 안전성 이 비교적 높 은 시스템 은 불가능 하 다.이때 이런 조작 에 대해 그들의 안전 버 전 을 사용 해 야 한다.보안 버 전 은 작업 이 실 행 된 후 getLastError 명령 을 즉시 실행 하여 실행 여 부 를 확인 합 니 다.만약 실패 하면 일반적으로 포획 할 수 있 는 이상 을 던 진 후에 우 리 는 코드 에서 처리 할 수 있다.
5.요청 과 연결
데이터 베 이 스 는 각 MongoDB 데이터베이스 연결 에 하나의 대기 열 을 만 들 고 이 연결 요청 을 저장 합 니 다.클 라 이언 트 가 새로 보 낸 요청 은 대기 열의 끝 에 놓 입 니 다.대기 열 에 있 는 요청 이 모두 실행 되 어야 후속 요청 이 실 행 됩 니 다.즉,하나의 연결 에 있어 서 요청 은 순서대로 실행 되 고 병발 문제 가 없 기 때문에 자신 이 쓴 것 을 읽 을 수 있다.그러나 서로 다른 연결 에 대해 서 는 읽 기와 쓰기 가 일치 하지 않 는 문제 가 발생 할 수 있 으 므 로 드라이버 가 연결 풀 을 사용 할 때 이 행동 에 특히 주의해 야 합 니 다.구체 적 인 연결 탱크 정 보 는 홈 페이지 를 참고 할 수 있 습 니 다MongoDB 홈 페이지

좋은 웹페이지 즐겨찾기