엘리스 AI트랙 4기/엘리스 이론 강의

Mongo DB 기초

남쪽마을밤송이 2022. 2. 11. 13:55

 [insert, insertOne, insertMany] 

insert(삽입)

  • insertMany는 배열 형태로 다수의 데이터를 삽입한다.
  • 몽고3.2버전 이후에는 insertOne(), insertMany() 명령을 사용을 권장하므로, insert() 명령 사용은 자제하는 것이 좋다.

 [update, updateOne, updateMany] 

update(수정)

  • MongoDB에서 update명령을 사용하여 특정 필드의 값을 변경할 때는 $set 연산자를 사용하여야 한다.
  • 만약 사용하지 않는다면 입력한 데이터 자체를 통째로 덮어버리게 되기 때문에 주의해야 한다.
  • update 명령은 단일 도큐먼트도 수정 가능하지만 다수의 도큐먼트도 수정 가능하다.
  • 다수의 도큐먼트 수정시에는 multi 옵션을 사용하여 수정할 수 있다.
    db.users.update({}, {$set: {age: 25}}, {multi: true}); -- {}는 필드 전체를 수정하겠다는 의미
  • 만약 multi 옵션을 사용하지 않는다면 기본적으로 단일 도큐먼트 수정이 되기 때문에 가장 처음 데이터만 변경이 된다.

여러개 해당하는데 updateOne으로 수정하면?

  • 가장 처음 데이터만 변경이 된다.

updateMany

  • update의 multi 옵션을 자동으로 사용해준 명령이라고 보면 된다.

출처: https://progdev.tistory.com/43

 [delete] 

delete(삭제)

  • db.users.deleteOne({});와 같이 빈칸으로 두면 처음 도큐먼트 한개를 삭제하는 명령이다.
  • db.users.deleteMany({});는 users 컬렉션의 모든 도큐먼트를 삭제하는 명령이다.

 [cursor] 

cursor

  • MongoDB의 FIND는 항상 커서를 반환하는데, 커서를 통해서 쿼리 결과 도큐먼트를 하나씩 읽을 수 있다.
  • 커서는 단순히 결과 도큐먼트를 읽는 용도로만 사용되는 것이 아니며, 검색 결과를 정렬하거나 지정된 건수의 도큐먼트를 건너뛰거나 제한하는 등의 기능도 제공한다.
  • MongoDB의 매뉴얼(https://docs.mongodb.com/manual/reference/method/js-cursor/)에서 많은 커서의 기능들을 확인할 수 있다.

데이터 정렬 cursor.sort()

  • 쿼리의 결과 데이터를 정렬하려면 sort() 커서 옵션을 사용해야 한다. 정렬 옵션에 따라 실행 계획이 바뀌기도 하니 반드시 쿼리를 실행하는 시점에 sort()를 사용해야 한다.
  • sort() 옵션은 하나의 인자를 사용하는데, 정렬할 필드의 목록을 나열하면 된다. 역순으로 정렬하고자 하는 필드는 -1, 정순으로 정렬하고자 하는 필드는 1로 설정하면 된다.
    db.users.find().sort( { name:1, scores: -1 } )​
    출처: https://rastalion.me/mongodb%EC%9D%98-%EC%9D%BD%EA%B8%B0-%EC%97%B0%EC%82%B0/

 

'엘리스 AI트랙 4기 > 엘리스 이론 강의' 카테고리의 다른 글

SQL로 데이터 다루기 I  (0) 2022.01.28