250x250
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Core Java
- maven
- MySQL
- Python
- IntelliJ
- JDBC
- ubuntu
- spring
- Exception
- 오픈소스
- oracle
- MSSQL
- jpa
- JavaScript
- STS
- Open Source
- Thymeleaf
- SpringBoot
- AJAX
- Spring Boot
- Tomcat
- PostgreSQL
- error
- 설정
- 문서
- myBatis
- git
- Docker
- Eclipse
- Source
Archives
- Today
- Total
헤르메스 LIFE
[MongoDB] MongoDB 명령어 기본 본문
728x90
MongoDB 기본명령어에 대해 나열하겠습니다.
1. Database 생성/접속(선택)/삭제
# 생성과 접속의 명령이 같습니다.
# use [Database명]
use spring
# Database 삭제
# 반드시 선택 후 삭제해야 합니다. 되돌릴 수 없습니다.
db.dropDatabase()
2. Collection 생성/목록/삭제
# Collection 생성
# db.createCollection("[Collection명]")
db.createCollection("movies")
# Collection 목록
show collections
# Collection 삭제
db.movies.drop()
3. 데이터 조회
# 전체조회
# db.[Collection명].find()
db.movies.find()
# 단건조건조회 ( 조건이 무조건 같아야 합니다. )
# db.[Collection명].findOne({ field:"조건" })
db.movies.findOne({ movieId:1 })
# Equal(=) 조건조회 ( 조건이 무조건 같아야 합니다. )
# db.[Collection명].find({ field:"조건" })
db.movies.find({ movieId:1 })
# AND 조건조회
# db.[Collection명].find({ field:"조건"}, {"",""}, ... )
db.movies.find( { movieId:1 }, { title:"Toy Story (1995)" } )
db.movies.find({ $and:[{movieId:1 }, { title:/^Toy/ }] })
# OR 조건조회
# db.[Collection명].find({ $or:[{field:"조건"}, {"",""}, ...] })
db.movies.find({ $or:[{ title:/^Toy/ }, { title:/Love$/ }] })
# AND, OR 조회
# db.[Collection명].find({ field:"조건", $or:[{field:"조건"}, {"",""}, ...] })
db.movies.find({ movieId:1, $or:[{ title:/^Toy/ }, { title:/Love$/ }] })
# LIKE 검색
# 정규표현식 /검색어/:%검색어%, '^검색어':검색어%, '검색어$':%검색어
db.movies.find({ title:/Love/ })
db.movies.find({ title:/^Love/ })
db.movies.find({ title:/Love$/ })
# Int32 타입 조회
db.getCollection("movies").find({
"$expr": {
"$regexMatch": {
"input": {"$toString": "$movieId"},
"regex": /^123/
}
}
}
)
# 부등호 조회 >
# db.[Collection명].find({ field:{ $gt:"조건" } })
db.ratings.find({ rating:{$gt:3.5} })
# 부등호 조회 <
# db.[Collection명].find({ field:{ $lt:"조건" } })
db.ratings.find({ rating:{$lt:1.5} })
# 부등호 조회 >=
# db.[Collection명].find({ field:{ $gte:"조건" } })
db.ratings.find({ rating:{$gte:3.5} })
# 부등호 조회 <=
# db.[Collection명].find({ field:{ $lte:"조건" } })
db.ratings.find({ rating:{$lte:1.5} })
# 부등호 조회 !=
# db.[Collection명].find({ field:{ $ne:"조건" } })
db.ratings.find({ rating:{$ne:1.5} })
# 부등호 조회 > AND <
# db.[Collection명].find({ $and:[ { field:{$gte:"조건"}, field:{ $lte:"조건"} } ] })
db.ratings.find({ $and:[ { rating:{$gte:2.5}, rating:{$lte:3.5} } ] })
# 존재검사
# db.[Collection명].find({ field:{$exists:"조건"} })
db.movies.find({ title:{$exists:true} }) # title 컬럼에 값이 있는 데이터
db.movies.find({ title:{$exists:false} }) # title 컬럼에 값이 없는 데이터
# 정렬(Sort)
# db.[Collection명].find({}).sort({ field:1}) // 오름차순
# db.[Collection명].find({}).sort({ field:-1}) // 내림차순
# db.[Collection명].find({}).sort({ field:-1, field:1, ...}) // 복수조건
db.movies.find({}).sort({movieId:1})
db.movies.find({}).sort({movieId:-1})
db.movies.find({}).sort({title:1, movieId:-1})
# Limit
# db.[Collection명].find({}).limit("limit수량")
db.movies.find({}).limit(10)
# Skip
# db.[Collection명].find({}).skip("skip수량")
db.movies.find({}).skip(10)
# Distinct
# db.[Collection명].distinct("컬럼명") // 배열로 리턴함
db.movies.distinct("genres")
4. Insert, Update, Delete
# insert (3.2버전이전)
# insertOne (3.2버전이상) / insertMany (3.2버전이상)
# db.[Collection명].insert()
// Default 무조건 한건만 Insert됨.
db.movies.insert(
{"movieId":300000, "title":"영화1", "genres":"Comedy"}
)
db.movies.insertOne(
{"movieId":300000, "title":"영화1", "genres":"Comedy"}
)
db.movies.insert(
[
{"movieId":300001, "title":"영화2", "genres":"Comedy"}
, {"movieId":300002, "title":"영화3", "genres":"Comedy"}
, {"movieId":300003, "title":"영화4", "genres":"Comedy"}
]
)
db.movies.insertMany(
[
{"movieId":300001, "title":"영화2", "genres":"Comedy"}
, {"movieId":300002, "title":"영화3", "genres":"Comedy"}
, {"movieId":300003, "title":"영화4", "genres":"Comedy"}
]
)
# update
# db.[Collection명].update()
# updateOne (3.2버전이상) / updateMany (3.2버전이상)
// Default 무조건 한건만 Update됨
db.movies.update(
{ movieId:300000 }
, {$set:
{
title:"영화1-수정"
, genres:"Drama"
}
}
)
// Default 무조건 한건만 Update됨
db.movies.updateOne(
{ movieId:300000 }
, {$set:
{
title:"영화1-수정"
, genres:"Drama"
}
}
)
// 여러건 수정
db.movies.update(
{ movieId:300002 }
, {$set:
{
title:"영화3-수정"
, genres:"Drama"
}
}
, {multi:true}
)
// 여러건 수정(3.2버전이상)
db.movies.updateMany(
{ movieId:300001 }
, {$set:
{
title:"영화1-수정"
, genres:"Drama"
}
}
)
# Merge
db.movies.update(
{ movieId:300005 }
, {$set: {
movieId:300005
, title:"영화5"
, genres:"Drama"
}
}
, { upsert: true }
)
# 삭제
# db.[Collection명].remove()
// 조건 삭제
db.movies.remove({ movieId:300005 })
// 한건 삭제
db.movies.deleteOne({ movieId:300005 })
// 다건 삭제
db.movies.deleteMany({ movieId:300001 })
db.movies.deleteMany({ movieId:300001, movieId:300002 })
// 전체 삭제
db.movies.remove({})
5. Group 함수
# Group Count
# db.[Collection명].aggregate([{ $group:{ _id:"$필드명", "보여질컬럼명":{$sum:1} } }])
db.ratings.aggregate([{
$group:{ _id:"$userId", 소계:{$sum:1} }
}])
# Group Sum
# db.[Collection명].aggregate([{ $group:{ _id:"$필드명", "보여질컬럼명":{$sum:"$Sum컬럼명"} } }])
db.ratings.aggregate([{
$group:{ _id:"$userId", 소계:{$sum:"$rating"} }
}])
# Group Avg
# db.[Collection명].aggregate([{ $group:{ _id:"$필드명", "보여질컬럼명":{$avg:"$Avg컬럼명"} } }])
db.ratings.aggregate([{
$group:{ _id:"$userId", 소계:{$avg:"$rating"} }
}])
# Group Min
# db.[Collection명].aggregate([{ $group:{ _id:"$필드명", "보여질컬럼명":{$min:"$Min컬럼명"} } }])
db.ratings.aggregate([{
$group:{ _id:"$userId", 소계:{$min:"$rating"} }
}])
# Group Max
# db.[Collection명].aggregate([{ $group:{ _id:"$필드명", "보여질컬럼명":{$max:"$Max될컬럼명"} } }])
db.ratings.aggregate([{
$group:{ _id:"$userId", 소계:{$max:"$rating"} }
}])
6. 페이지 처리
# 1페이지당 10건씩 출력
# count = ( Page - 1 ) * 10
// ( 1 Page - 1 ) * 10
db.movies.find({}).skip(0).limit(10)
// ( 2 Page - 1 ) * 10
db.movies.find({}).skip(10).limit(10)
// ( 3 Page - 1 ) * 10
db.movies.find({}).skip(20).limit(10)
7. Index 생성 / 삭제
# Index 생성
# db.[Collection명].createIndex( { <field>:1 } ) // 오름차순
# db.[Collection명].createIndex( { <field>:-1 } ) // 내림차순
db.movies.createIndex({ movieId:1 })
# Multi Index 생성
# db.[Collection명].createIndex( { <field>:1, <field>:-1 } )
db.movies.createIndex({ movieId:1, title:1 })
# Index 조회
db.movies.getIndexes()
# Index 삭제
# db.[Collection명].dropIndex( { <field>:1 } )
db.movies.dropIndex({ movieId:1 })
# Unique Index
db.movies.createIndex( { movieId:1 }, { unique:true } )
// 입력 테스트
db.movies.insertOne(
{"movieId":1, "title":"영화1", "genres":"Comedy"}
)
//E11000 duplicate key error collection: spring.movies index: movieId_1 dup key: { movieId: 1 }
https://hermeslog.tistory.com/734
https://hermeslog.tistory.com/735
728x90
'Database' 카테고리의 다른 글
[Oracle] Ubuntu Linux 에 SQL Developer 설치 (0) | 2024.04.08 |
---|---|
[PostgreSQL, MariaDB] 다건 Insert ( Multi Row Insert ) (2) | 2024.02.25 |
[MongoDB] Mongo Database 샘플 데이터 로드 (0) | 2023.11.07 |
[Docker] Docker 에 MongoDB설치하기 (0) | 2023.11.04 |
[Oracle] Oracle Instant Client 11.2.0.4 설치 및 설정 (0) | 2023.07.31 |