MongoDB TIL 04

Nabang Kim·2021년 9월 3일

MongoDB

목록 보기
4/10
post-thumbnail

2021년 9월 3일에 작성된 문서 4번 입니다.
MongoDB 배운 내용을 정리했습니다.



MongoDB CRUD - READ (Find 명령어)

show dbs

  1. 노란색 블록과 같이 터미널로 아틀라스 클러스터에 접속.
  2. 미리 받아둔 MongoDB에서 샘플 데이터베이스 리스트를 터미널에서 확인.
    • 이 작업을 위해 show dbs 명령어를 사용.
    • 하늘색 블록 : sample_ 로 시작하는 데이터베이스 = MongoDB가 제공하는 더미(dummy)

use db, show collections

  • sample_training 데이터베이스를 사용하려면, use sample_training 입력.
    • sample_training 자리 : 사용하려는 데이터베이스의 이름
  • 데이터베이스가 어떤 컬렉션을 가지고 있는지 보기 : show 사용
    • show collections : sample_training 안의 컬렉션 리스트.

1. 뉴욕 주의 우편번호 관련 데이터를 조회

이 컬렉션 중에서, zips라고 되어 있는 컬렉션에서 데이터를 읽어보도록 하겠습니다. zips 컬렉션은 미국의 우편번호 관련 데이터를 저장해두었습니다. 따라서 뉴욕 주의 우편번호 관련 데이터를 조회하려고 합니다.

  • find 전체 쿼리 형식: db.collection_name.find(<쿼리문>)
    • 뉴욕주 조건을 만족하는 데이터 : db.zips.find({"state":"NY"})

이 명령어를 사용할 때, 이미 필요한 데이터베이스 공간으로 이동했기 때문에 사용할 데이터베이스의 이름을 특정해서 작성할 필요가 없습니다. 따라서 위 명령어에서 db는 sample_training 데이터베이스를 가리키고 있습니다.


  • db.zips.find({“state” : “NY”})의 결과물 : JSON 형식으로 출력

find 명령어에 따른 실제 결과물은 화면에 출력된 것보다 훨씬 많지만 화면에는 랜덤하게 선택된 총 20개 결과물만 출력됩니다.

  • 다음 20개의 도큐먼트를 조회하려면 iterate의 줄임말인 it 을 사용.



2. zips 컬렉션 데이터 중 뉴욕 주 ALBANY 시의 우편번호만 볼 경우

  • 두 가지 조건을 줄 경우, find(<쿼리문1, 쿼리문2>) 형태로 적는다.
  • db.zips.find({“state” : “NY”, “city” : “ALBANY”}) 같이 작성

  • 결과 :
    • 두 쿼리문을 만족하는 결과가 출력
    • 총 7개 데이터이기 때문에 it을 타이핑 하라는 문구는 뜨지 않는다.



3. zips 데이터베이스의 모든 데이터를 조회

  • find 명령어를 조건 쿼리문 없이 사용



4. 정렬되게 출력

  • 전체 미국 우편번호 데이터 중 정렬 되지 않은 무작위의 20개의 데이터가 출력
  • pretty( ) : 도큐먼트의 구조와 각 필드, 값의 쌍을 더 읽기 편하게 만듦.



5. 데이터의 수를 조회

  • count( ) 명령어를 사용
  • 연두색 블록 : zips 컬렉션 안 모든 데이터의 수가 출력
    • 현재 zips 안의 미국 우편번호 관련 데이터는 총 29,470개가 있다는 것을 알게 되었다.



6. 특정한 1개의 데이터만을 조회

  • findOne을 사용
  • MongoDB의 도큐먼트를 구별하는 고유한 값인 _id로 데이터 특정.
  • 결과 :
    * 주황색 블록과 같이 데이터 1개가 출력



7. 무작위의 데이터 1개만 조회

  • 조건 쿼리문을 작성하지 않은 상태의 findOne( )을 사용






Written with StackEdit.

0개의 댓글