반응형
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 |
Tags
- nodejs
- useCallback
- listeners
- 이미지 배경 지우기
- Drawer
- 리액트 쿼리
- useState
- ReactQuery
- react native
- bottom tabBar
- MonGo
- tabBarStyle
- oh-my-zsh
- rembg
- iTerm2
- redux/toolkit
- 리액트네이티브
- reactnative
- Stack
- useRef
- useMemo
- 갤럭시 스킨
- 에뮬레이터 스킨
- bottom tabs
- react
- gitpages
- 포트폴리오 사이트
- mongoDB
- Hook 함수
- useEffect
Archives
- Today
- Total
프론트엔드 개발자의 개발 놀이터
MongoDB 문법 본문
반응형
데이터베이스 확인
> show dbs;
admin 0.000GB
config 0.000GB
local 0.000GB
데이터베이스 생성
> use 데이터베이스명;
switched to db admin
- 데이터베이스가 없으면 생성 후 선택, 있으면 선택
- 데이터베이스에 자료가 없을 경우 show dbs에 나타나지 않음
데이터베이스 삭제
> db.dropDatabase();
컬렉션 생성
> db.createCollection('컬렉션명');
컬렉션 확인
> show collections;
컬렉션 삭제
> db.컬렉션명.drop();
Document 추가
> db.컬렉션명.insert({키1:값1, 키2:값2, ...});
ex) db.member.insert({"userid": "apple", "userpw": "1111", "name":"김사과", "gender":"남자"});
Document 확인
# 검색
> db.컬렉션명.find();
# 구조적으로 정리해서 검색
> db.컬렉션명.find().pretty();
_id는 각 Document의 유일한 키로 쓰이는 고유한 값
Document의 비교 연산
- $eq : 주어진 값과 일치하는 값을 찾음
- $gt : 주어진 값보다 큰 값을 찾음
- $gte : 주어진 값보다 크거나 같은 값을 찾음
- $lt : 주어진 값보다 작은 값을 찾음
- $lte : 주어진 값보다 작거나 같은 값을 찾음
- $ne : 주어진 값과 일치하지 않는 값을 찾음
- $in : 주어진 배열안에 속하는 값을 찾음
- $nin : 주어진 배열안에 속하지 않는 값을 찾음
# ex) 포인트가 700 이상인 멤버를 검색
db.member.find({"point":{$gte:700}}).pretty();
Document의 논리 연산
- $and : 주어진 모든 조건이 true일 때 true
- $or : 주어진 조건 중 하나라도 true이면 true
- $not : 주어진 조건이 true라면 false, false라면 true
# ex) 아이디가 "etrog"이고 비밀번호가 "4444"인 멤버를 검색
db.member.find({$and:[{"userid":"etrog"}, {"userpw":"4444"}]}).pretty();
Document의 정렬
> db.컬렉션명.find().sort();
1. 형태
sort({필드명: 1});
* 1은 오름차순, -1은 내림차순
# ex) 아이디로 내림차순 정렬
db.member.find().sort({"userid":-1}).pretty();
2. 여러 key를 입력할 수 있고, 먼저 입력한 key 대로 정렬
# ex) 포인트로 정렬 후 아이디로 정렬
db.member.find().sort({"point":1, "userid":-1}).pretty();
Document의 갯수 제한
- limit(): 출력할 데이터의 갯수를 제한할 때 사용
> db.컬렉션명.find().limit(출력할 갯수);
Document의 데이터 생략 후 출력
- skip(): 출력할 데이터의 시작부분을 정해준 수만큼 스킵해서 설정
> db.컬렉션명.find().skip(생략할 갯수);
Document의 수정
1. 특정 field 업데이트
db.컬렉션명.update({바꿀객체}, {$set:{필드(키값): 값, ...}});
ex) db.member.update({"userid":"grape"}, {$set: {"name":"정포도"}});
2. 특정 Document replace
db.컬렉션명.update({바꿀객체}. {새로운객체});
* document replace는 _id가 바뀌지 않음
ex)
db.member.update(
{"userid":"grape"},
{
"userid":"guava",
"userpw":"9ava",
"name":"구찬성",
"gender":"남자",
"point":1200
}
);
3. 특정 field 제거
db.컬렉션명.update({바꿀객체}, {$unset:{팔드(키값): 1}});
* 1은 true를 의미
ex) db.member.update({"userid":"guava"}, {$unset:{"userpw":1}});
4. 여러 Document의 특정 field를 수정
db.컬렉션명.update({바꿀객체}, {$unset: {"userpw": 1}});
ex) db.member.update({"point":{$gte:700}}, {$set: {"userpw":"1234"}, {multi:true}});
Document의 삭제
db.컬렉션명.remove(객체);
ex) db.member.remove({"userid":"grape"});
'MongoDB' 카테고리의 다른 글
MongoDB와 NodeJS 연동하기 (0) | 2024.02.02 |
---|---|
MacOS MongoDB 설치 및 설정 (0) | 2024.02.02 |