Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- httpCode
- db
- 알고리즘기초
- chatGPT
- 백준
- Python
- 마크다운
- 마크다운문법
- Markdown
- Algorithm
- 그래프
- 그리디알고리즘
- 인프콘2024
- 탐색알고리즘
- 수학
- 데이터
- 소수
- NoSQL
- 그리디
- 코딩문제
- mongoDB
- 알고리즘
- 데이터베이스
- 코딩테스트
- 기초
- 수열
- database
- 몽고DB
- 파이썬
- 코테
Archives
- Today
- Total
Dev_from the Bottom
#28. MongoDB_04 : 데이터 검색/다중 데이터 입력/배열 검색 본문
1. 모든 데이터 조회(전체)
# 모든 데이터 조회
db.col2.find()
2. 다중 데이터 입력 : 배열 포함
db.col2.insertMany([{name:"홍길동2", age:500, etc:[{hobby:"달리기", state:"충청도2"}, {likenum:[1,2,3,4,5]}]},
{name:"핑크퐁", age:5, etc:[{hobby:"마술", state:"서울"}, {likenum:[10,20,30,40,50]}]},
{name:"뽀로로", age:5, etc:[{hobby:"여행", state:"경기"}, {likenum:[20,30,40,50, 60]}]}
])
>>>
{ acknowledged: true,
insertedIds:
{ '0': ObjectId("629554873a5bcee96d63bdc2"), # objectId가 3개 생김
'1': ObjectId("629554873a5bcee96d63bdc3"),
'2': ObjectId("629554873a5bcee96d63bdc4") } }
3. 다양한 조건 하에 조회
# 홍길동만 조회
db.col2.find({name:"홍길동"})
>>>
{ _id: ObjectId("629553f63a5bcee96d63bdc1"),
name: '홍길동',
age: 500,
etc:
[ { hobby: '육상', state: '충청도' },
{ likenum: [ 1, 2, 3, 4, 5 ] } ] }
# 조회 조건 여러개
db.col2.find({name:"뽀로로", age : 5}) # 컴마로 구분
>>>
{ _id: ObjectId("629554873a5bcee96d63bdc4"),
name: '뽀로로',
age: 5,
etc:
[ { hobby: '여행', state: '경기' },
{ likenum: [ 20, 30, 40, 50, 60 ] } ] }
# age : 5 -> 뽀로로, 핑크퐁 두개 결과 출력
db.col2.find({age : 5})
>>>
{ _id: ObjectId("629554873a5bcee96d63bdc3"),
name: '핑크퐁',
age: 5,
etc:
[ { hobby: '마술', state: '서울' },
{ likenum: [ 10, 20, 30, 40, 50 ] } ] }
{ _id: ObjectId("629554873a5bcee96d63bdc4"),
name: '뽀로로',
age: 5,
etc:
[ { hobby: '여행', state: '경기' },
{ likenum: [ 20, 30, 40, 50, 60 ] } ] }
# findOne() : 맨 먼저 데이터 하나만 출력
>>>
db.col2.findOne({age : 5})
{ _id: ObjectId("629554873a5bcee96d63bdc3"),
name: '핑크퐁',
age: 5,
etc:
[ { hobby: '마술', state: '서울' },
{ likenum: [ 10, 20, 30, 40, 50 ] } ] }
# 특정 필드는 안나오게 : 아이디 안나오게
# {_id:0} : 아이디는 출력 안되게
db.col2.find({age : 5}, {_id:0})
>>>
{ name: '핑크퐁',
age: 5,
etc:
[ { hobby: '마술', state: '서울' },
{ likenum: [ 10, 20, 30, 40, 50 ] } ] }
{ name: '뽀로로',
age: 5,
etc:
[ { hobby: '여행', state: '경기' },
{ likenum: [ 20, 30, 40, 50, 60 ] } ] }
# 아이디만 출력 : 추가 옵션 개념
db.col2.find({age : 5}, {_id:1})
>>>
{ _id: ObjectId("629554873a5bcee96d63bdc3") }
{ _id: ObjectId("629554873a5bcee96d63bdc4") }
3. 배열 검색
- elemMatch : 필드명이 같은 것을 찾아줌
db.col2.find({etc:{$elemMatch:{"likenum.0":20}}}) # 첫번째 요소(0)이 20
>>>
{ _id: ObjectId("629554873a5bcee96d63bdc4"),
name: '뽀로로',
age: 5,
etc:
[ { hobby: '여행', state: '경기' },
{ likenum: [ 20, 30, 40, 50, 60 ] } ] }
# 두번째 요소가 20인거 찾기
db.col2.find({etc:{$elemMatch:{"likenum.1":20}}})
>>>
{ _id: ObjectId("629554873a5bcee96d63bdc3"),
name: '핑크퐁',
age: 5,
etc:
[ { hobby: '마술', state: '서울' },
{ likenum: [ 10, 20, 30, 40, 50 ] } ] }
# 취미가 육상인 사람 찾기
db.col2.find({etc:{$elemMatch:{"hobby":"육상"}}})
>>>
{ _id: ObjectId("629553f63a5bcee96d63bdc1"),
name: '홍길동',
age: 500,
etc:
[ { hobby: '육상', state: '충청도' },
{ likenum: [ 1, 2, 3, 4, 5 ] } ] }
# 참고
- https://www.youtube.com/watch?v=PT44sq-x0yc&list=PLrqBTipDm9KSdW77bHEpdUQNWBjZGsW1d&index=4
- https://cionman.tistory.com/48?category=758474
- 몽고DB 완벽 가이드 3판(크리스티나 초도로 등 2명, 한빛미디어)
'Database' 카테고리의 다른 글
#30. MongoDB_05 : 커서(Cursor) 개념 / 기초 활용법 (0) | 2022.06.01 |
---|---|
#27. MongoDB_03 : DB, Collection 수정 삭제/ 상태 확인 / 반복문 활용 데이터 입력 (0) | 2022.05.31 |
#25. MongoDB_02 : DB Collection 생성, 데이터 하나 입력 (0) | 2022.05.30 |
#23. MongoDB_01 : MongoDB 개념(+ vs RDBMS) (0) | 2022.05.29 |
#21. MongoDB_00 : NoSQL 개념(vs SQL) + MongoDB 인트로 (0) | 2022.05.25 |
Comments