- 문서 모델
- 속성 값은 간단한 데이터 타입, 배열, 다른 문서도 가능하다.
- 문서의 구조가 다양하다.
- 미리 정해진 스키마가 존재하지 않는다.
- 수평적인 확장성이 좋다. 단, 무결성과 정합성을 보장하지 않기 때문에 장단점이 있다.
- RDB와 Key-Value 구조의 장점을 결합하여 설계되었다.
- 질의어
설명 | MongoDB (shell) |
시스템의 모든 데이터베이스 출력 | show dbs |
데이터베이스에 정의된 컬렉션 목록 출력 | show collections |
하나의 데이터베이스에 대한 상세정보 출력 | db.stats() |
하나의 컬렉션에 대한 상세정보 출력 | db.컬렉션명.stats() |
데이터베이스 생성 | use 데이터베이스명 |
컬렉션 생성 (생성 안하고 바로 insert하면 자동으로 생김) |
db.createCollection(컬렉션명, [옵션]) |
컬렉션과 모든 인덱스를 삭제 | db.컬렉션명.drop() |
데이터베이스 삭제 | db.DropDatabase() |
설명 | CREATE |
하나의 문서 삽입 | db.컬렉션명.insert( json ) |
하나의 문서 삽입 (return 객체 다름) |
db.컬렉션명.insertOne( json ) |
여러 개의 문서 삽입 | db.컬렉션명.insertMany( json, json, ... ) |
설명 | READ |
조건에 맞는 문서 출력 | db.컬렉션명.find( { 조건 }, [옵션] ) |
조건에 맞는 문서 중 첫번째 문서 출력 | db.컬렉션명.findOne( {조건}, [옵션] ) |
집계 함수 | db.컬렉션명.aggregate( [pipeline], [옵션] ) |
설명 | UPDATE |
조건에 맞는 문서중 하나만 변경 | db.컬렉션명.update({조건}, {$set: {변경부분}}) |
조건에 맞는 문서중 하나만 변경 (위와 다른점은 리턴되는 객체가 다름) |
db.컬렉션명.updateOne({조건}, {$set:{변경부분}}) |
조건에 맞는 모든 문서 변경 | db.컬렉션명.updateMany({조건}, {$set:{변경부분}}) |
설명 | DELETE |
조건에 맞는 한 문서를 삭제 | db.컬렉션명.deleteOne({ 조건 }); |
조건에 맞는 모든 문서를 삭제 | db.컬렉션명.deleteMany({ 조건 }); |
조건에 맞는 문서를 삭제 (옵션이 true/false일 때, 한 개만 삭제/모두 삭제 할지가 결정됨) |
db.컬렉션명.remove( { 조건 }, [옵션] ) |
- find() 함수 활용
'[SQL] 연습' 카테고리의 다른 글
[SQL] View의 특징과 생성 및 삭제 (0) | 2022.06.26 |
---|---|
[DB] mysql에서 한글 포함된 쿼리 insert 안될 때 (0) | 2022.06.11 |
[SQL] SQL 기본(3편) (0) | 2022.02.01 |
[SQL] SQL 기본(2편) (0) | 2022.01.30 |
[SQL] SQL 기본(1편) (0) | 2022.01.29 |