반응형
해당 글에서는 MongoDB를 설치하고 Robo 3T 툴을 이용하여 활용하는 방법에 대해 확인해 봅니다.
💡 MongoDB의 이론에 대해 궁금하시면 아래의 글이 도움이 됩니다.
1) MacOS 환경에서 MongoDB 설치
💡 공식 사이트의 설치 방법을 참고하여 구성하였습니다.
1. MongoDB 및 데이터베이스 도구에 대한 공식 Homebrew 공식을 다운로드합니다.
$ brew tap mongodb/brew
2. homebrew를 update 합니다.
$ brew update
3. brew로 설치가능한 mongodb 버전을 확인합니다.
$ brew search mongodb
4. mongoDB 7.0을 설치합니다.
$ brew install mongodb/brew/mongodb-community@7.0
5. 설치한 버전의 서비스를 실행합니다.
$ brew services start mongodb-community@7.0
6. 실행이 잘되었는지 확인합니다.
$ brew services list
2) Robo 3T로 로컬환경 구성하기
1. 공식 홈페이지에 접속합니다.
💡 각각의 사양에 맞게 다운로드를 합니다. 저는 M1 Pro를 사용하고 있기에 Download for Apple Slicon을 다운로드하였습니다. 별 다른 설정 없이 계속 진행을 해줍니다.
2. 설치된 목록 중 두 개가 있는데 Robo 3T를 실행합니다.
💡 간단한 버전으로 Robo 3T를 이용하여 테스트를 해봅니다.
[ 더 알아보기 ]
💡 Robo 3T와 Studio 3T가 설치되었는데 두 개의 차이는 무엇인가?
- Robo 3T와 Studio 3T는 둘 다 MongoDB 데이터베이스 관리 도구입니다. 하지만 로보 3T는 오픈 소스 버전이며, 스튜디오 3T는 상용 버전입니다.
- 스튜디오 3T에는 추가 기능과 향상된 사용자 인터페이스가 포함되어 있습니다.
- 로보 3T는 간단한 MongoDB 작업을 수행하기에 적합하며, 스튜디오 3T는 더 복잡한 작업을 수행하고자 하는 개발자 및 데이터베이스 관리자를 위해 더 유용합니다.
💡 오픈소스 버전이랑 상용 버전은 무슨 차이가 있는가?
- 오픈 소스 버전은 라이선스 비용 없이 무료로 사용할 수 있는 버전입니다.
- 사용 버전은 상용 버전으로, 추가 기능과 향상된 사용자 인터페이스 등이 포함되어 있으며, 일반적으로 라이선스 비용이 발생할 수 있습니다.
- 차이에 대해 상세히 알고 싶으시면 링크를 이용하시면 상세하게 알 수 있습니다.
https://studio3t.com/whats-new/whats-the-difference-between-robo-3t-and-studio-3t-free-studio3t_ama/
3. 실행을 하면 아래와 같은 화면이 출력됩니다.
4. ‘Create’ - ‘Name 입력’ - ‘Test’ 버튼을 눌러서 로컬 연결 확인을 합니다.
5. 연결이 완료되었고 ‘Connection’ 버튼을 누릅니다.
6. Collection의 생성이 완료되었습니다.
7. 테스트할 데이터베이스를 생성합니다.
3) Document 생성 및 확인
💡 일반적으로 ‘MongoDB를 사용하는 경우‘ Document가 존재하지 않은 상태에서 Document를 insert 하는 경우 즉시 GUI에서 생성이 됩니다.
1. Document 각각 다른 형태로 데이터를 확인할 수 있습니다.
💡 View results in tree mode
💡 View result in table mode
💡 View results in text mode
2. Document 생성
2.1. Java 기반 API 환경에서 MongoDB Document가 생성되는 경우
💡 MongoRepository에서 MongoDB의 Document의 값을 insert 하는 구문이 수행한다 가정하였을때 이를 insert하는 순간 Document가 생성됩니다.
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
public class MongoService {
@Autowired
private MongoRepository mongoRepository;
@Transactional
public void insertData(DataModel data) {
mongoRepository.save(data);
}
}
[ 더 알아보기 ]
💡 Docuemnt가 존재하지 않는데 insert가 아닌 select를 수행하면 오류가 발생하는가?
- Collection이 구성되지 않은 상태에서 select를 수행하면 오류가 발생합니다.
- MongoDB는 NoSQL 데이터베이스로, 스키마가 미리 정의되지 않습니다. 하지만 Collection을 생성하지 않고서는 데이터를 저장할 수 없습니다. 따라서, 데이터를 저장하고 조회하기 위해서는 먼저 해당 Collection을 생성해야 합니다.
- Collection을 생성하기 위해서는 MongoDB의 db.createCollection() 메소드를 사용하거나, MongoDB의 클라이언트 도구를 사용하여 수행할 수 있습니다.
2.2.1. MongoDB Shell을 이용하여 Doucment 생성 -1
💡 설치된 Collection의 Open Shell을 누릅니다.
2.2.2. shell 명령어로 Collection을 생성합니다. -2
db.createCollection('testCollection')
3. 명령어로 Collection의 Document를 구성해 봅니다.
💡 Collection의 컬럼과 Document 값을 구성하며 데이터 값을 넣습니다.
-- 한개의 Document를 구성하며 값을 insert합니다.
db.testCollection.insertOne({ name: "John", age: 30 })
-- collection 내에 여러개의 값을 insert합니다.
db.testCollection.insertMany([
{ name: "John", age: 30 },
{ name: "Alice", age: 25 },
{ name: "Mike", age: 35 }
])
[ 더 알아보기 ]
💡 만약에 지정된 값 말고 다른 값을 넣으면 어떻게 될까?
- 아래와 같이 값이 row로 추가가 됩니다.
db.testCollection.insertOne({ hobby: "blog" })
4) Doucument 수정 및 삭제
💡 아래와 같은 데이터 구조가 되어 있습니다. 이에 따라 Doucment를 수정하고 삭제해 봅니다.
1. Document의 값을 업데이트 수행합니다.
💡 testCollection에 있는 id 값을 기반으로 hobby 컬럼의 값을 변경합니다.
db.testCollection.update({ _id: ObjectId("650e82a4b1dff8a2e6e9cbe3") }, { $set: { hobby: "Reading books" } });
2. Document의 값을 삭제합니다.
db.testCollection.deleteOne({ ObjectId("650e8325b1dff8a2e6e9cbe4") });
db.collection.deleteMany({ field: { $exists: false } });
오늘도 감사합니다. 😀
반응형
'DB > 이론 및 문법' 카테고리의 다른 글
[DB/Postgres] 조건식과 연산자: CASE, COALESCE, NULLIF, CAST (0) | 2023.11.15 |
---|---|
[DB] 관계형 데이터베이스(RDBMS) 구조 : DDL, DML, DCL, TCL (1) | 2023.11.14 |
[DB/mongo] Document DB 이해하기 -1 : MongoDB 이론 및 주요 메서드 (0) | 2023.09.24 |
[DB/Postgres] 뷰 테이블(View Table) 이해하고 활용하기 (0) | 2023.09.22 |
[DB] 관계형 데이터베이스 키(Key) 이해하기 (0) | 2023.09.09 |