티스토리 뷰

 

Mongo DB 삽입, 삭제, 수정


 

삽입


함수

 

함수명 설명 매개변수
insertOne 단일 도큐먼트 삽입에 사용 ( {도큐먼트} )
insertMany 다수 도큐먼트 삽입에 사용 ( [ 도큐먼트 배열 ], Option(선택 사항))

 

특징
  1. 일괄 삽입은 한 번에 특정 크기 만큼에 데이터 삽입 처리를 하여 다수의 도큐먼트 추가에 높은 성능을 보여준다.
  2. 도큐먼트의 삽입은 기본적으로 순서를 보장하지 않는다, 다만 옵션을 통해  {"ordered": true }  순서를 보장할 수 있다.
  3. '_id' 필드가 존재하지 않으면, 자동으로 추가된다.

 

 

유효성 검사

 

  • UTF-8 문자열을 사용하는지 확인
  • 인실할 수 없는 데이터형을 사용하지 않았는지 확인
  • 도큐먼트 크기다 16MB보다 작은지 확인

 

SQL과의 비교 예시

SQL에서의 단일 레코드 삽입
insert into users (name, age) values ("hero", 26);
MongoDB에서의 단일 도큐먼트 삽입
db.users.insertOne({
    "name":"hero",
    "age": 26
 });

 

 

SQL에서의 다수 레코드 삽입
insert into users (name, age) values("hero", 26);
insert into users (name, age) values("chad", 26);
insert into users (name, age) values("peter", 31);

 

MongoDB의 다수 도큐먼트 삽입
db.users.insertMany([
	{"name":"hero", "age":26},
	{"name":"chad", "age":26},
	{"name":"peter", "age":31}
]);

 

 

 

삭제


함수

 

함수명 설명 매개변수
deleteOne 단일 도큐먼트 제거 ( {필터 도큐먼트(condition)} )
deleteMany 다수 도큐먼트 제거 ( {필터 도큐먼트(condition)} )
drop 컬렉션 내 모든 도큐먼트 제거  

 

 

SQL과 비교 예시

테이블 전체 레코드 삭제
delete from users
컬렉션 전체 도큐먼트 삭제
db.users.drop();

 

 

 

특정 단일 레코드 삭제
delete from users where name = "chad";
특정 단일 도큐먼트 삭제
db.users.deleteOne({
	"name":"chad"
});
  •  {"name":"chad"}  인 조건에 부합하는 도큐먼트가 여럿 있다면, 가장 위에 있는 도큐먼트가 삭제된다.

 

 

조건에 일치하는 다수 레코드 삭제
delete from users where age = 26;
조건에 일치하는 다수 도큐먼트 삭제
db.users.deleteMany({
	"age":26
});

 

갱신


함수
함수명 설명 매개변수
updateOne 단일 도큐먼트 수정 (필터 도큐먼트, 업데이트 연산자 구문, Options)
updateMany 다수 도큐먼트 수정 (필터 도큐먼트, 업데이트 연산자 구문, Options)
replaceOne 단일 도큐먼트 교체 (필터 도큐먼트, 교체할 도큐먼트, Options)

 

 

특징
  • 동시에 여러개의 수정 요청이 들어오면, 순서대로 적용하기 때문에,  최종적으로 들어온 요청이 적용된다.
  • SQL에 Update와 달리 스키마 변경역할(DDL)역할도 한다.

 

업데이트 연산자

업데이트 연산자는 키 변경, 추가, 제거 및 배열과 내장 도큐먼트 조작 역할을한다. 

상세 내용은 위 링크를 통해 확인.

 

SQL 비교 예시

다수 레코드 수정
update users
set age = 26
다수 도큐먼트 수정
db.users.updateMany({}, {age:26});

 

 

단일 레코드 수정
UPDATE users
set age = 27
where name = "chad"

UPDATE users
set age = 31
where name = "peter"
단일 도큐먼트 수정
db.users.updateOne({"name":"chad"}, {"age":27});
db.users.updateOne({"name":"peter"}, {"age":31});

 

 

참고

- MongoDB 완벽가이드 3판

- https://www.mongodb.com/docs/mongodb-shell/crud/update/

'DataBase > MongoDB' 카테고리의 다른 글

[MongoDB] 몽고 DB의 단위  (0) 2022.08.08
댓글