일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- java
- 소프티어
- BFS
- 데이터베이스
- C++
- 프로그래머스
- CJ UNIT
- 백준알고리즘
- SQL
- 시나공
- 알고리즘
- softeer
- 공부일지
- 코딩봉사
- SW봉사
- 백준
- 스프링
- 코틀린
- 정보처리산업기사
- 파이썬
- python
- MYSQL
- 문제풀이
- kotlin
- 회고
- programmers
- 백준 알고리즘
- 자바
- 1과목
- 코딩교육봉사
- Today
- Total
JIE0025
[MongoDB] Collection과 Document를 생성하고 실습해보자 본문
간단하게 MongoDB에서 컬렉션과 문서를 생성하고, 데이터를 관리하는 실습을 해보았다.
✅ Create Database
Compass 애플리케이션에서 + 버튼을 눌러 데이터베이스를 생성해보자.
데이터베이스 이름과 컬렉션(유사 RDBMS 테이블) 이름을 만들어준다.
아래와 같은 화면을 볼 수 있다.
🖥 CLI에서 처리하면?
# 1) mongodb 접속
mongo
# 2) 전체 DB 열람
show dbs
# 3) 데이터베이스 선택 (or 생성)
use tutorial
# 4) 선택한 DB의 콜렉션 열람
show collections
tutorial 데이터베이스가 잘 생성된것을 확인할 수 있다.
✅ Create Documents
+ ADD DATA에서 Insert document 를 클릭하자.
아래와 같은 화면이 나오는데
_id는 자동생성 되어 있고, 나머지 데이터를 자유롭게 구성하면 된다.
document를 딱 두개만 삽입하고, 조회를 해보자.
{
"_id": {
"$oid": "647332a66bd729ce3cb908a8"
},
"name": "gildong",
"age": 20,
"email": "gildong@example.com",
"address": {
"street": "공항로 2",
"city": "제주시",
"state": "제주"
}
}
{
"_id": {
"$oid": "6473338f6bd729ce3cb908a9"
},
"name": "jieun",
"age":21,
"email":"jieun@example.com",
"address": {
"street": "하늘길 112",
"city": "강서구",
"state": "서울"
}
}
🖥 CLI
db.collection.insertOne()를 이용하면 한개의 문서를 생성 할 수 있다.
collection부분에 생성한 컬렉션 이름을 넣어주면 된다.
https://www.mongodb.com/docs/manual/tutorial/insert-documents/
db.users.insertOne(
{
"name": "amy",
"age":16,
"email":"amy@example.com",
"address": {
"street": "공항로 272",
"city": "중구",
"state": "인천"
}
}
)
* 문서에서 _id 필드를 지정하지 않으면, MongoDB는 새문서에 자동으로 _id값(ObjectId 12bytes)을 생성한다.
✅ 조회 (find)
🖥 address.state가 "제주"인 Document 조회
{"address.state": "제주"}
🖥 age값이 20보다 큰 document 조회
{"age": {"$gt": 20}}
$gt : 크다를 의미하는 연산자. 주어진 값보다 큰 값을 가진 필드 검색
🖥 email 도메인이 example.com인 documnet 조회
{"email": {"$regex": ".*@example.com$"}}
$regex : 정규표현식을 이용해 문자열 패턴을 매칭하는 연산자
🖥 CLI
db.collection.find()를 이용하면 문서에서 데이터를 조회할 수 있다.
https://www.mongodb.com/docs/manual/reference/method/db.collection.find/
db.users.find({"address.state": "제주"})
db.users.find({"age": {"$gt": 20}})
db.users.find({"email": {"$regex": ".*@example.com$"}})
⏺ 비교 연산자
Operator | 약자 | 설명 |
$eq | equals | 주어진 값과 일치하는 값 |
$gt | greater than | 주어진 값보다 큰 값 |
$gte | greater than or equals | 주어진 값보다 크거나 같은 값 |
$lt | less than | 주어진 값보다 작은 값 |
$lte | less than or equals | 주어진 값보다 작거나 같은 값 |
$ne | not equal | 주어진 값과 일치하지 않는 값 |
$in | in | 주어진 배열 안에 속하는 값 |
$nin | not in | 주어진 배열 안에 속하지 않는 값 |
⏺ 논리 연산자
Operator | 설명 |
$or | 조건중 하나라도 true이면 true |
$and | 모든 조건이 true이면 true |
$not | 주어진 조건이 false인 경우에 true |
$nor | 주어진 모든 조건이 false일 때 true |
{ "$and": [{"age": {"$gt": 19}}, {"address.state": "제주"}] }
오늘은 MongoDB에서 간단하게 Collection, Document를 만들고, 조회하는것을 해보았다.
더 다양한 문법들이나 필요한 지식이 있으면 추가적으로 공부해야지.
이제는 Spring+Kotlin 프로젝트에 몽고디비를 연동을 해봐야겠다.
'백엔드 > 데이터베이스' 카테고리의 다른 글
[MongoDB] _id를 제거할 수 있을까? (0) | 2023.06.04 |
---|---|
[NoSQL] MongoDB란? 맥북(M1) 몽고디비, compass 설치 (0) | 2023.05.28 |
[DB] 인덱스의 자료구조 B-TREE, B+TREE (0) | 2023.04.30 |
[DB] SELECT문의 내부동작 기능 (Selection, Projection, Join) (0) | 2023.04.30 |
[MySQL] 데이터 확인시 1000개 제한 해제 (0) | 2023.04.08 |