MongoDB란 무엇인가

나르·2021년 9월 14일
0

NoSQL

목록 보기
1/4
post-thumbnail

🌱 NoSQL

Not Only SQL
RDMS처럼 고정된 스키마 및 JOIN 이 존재하지 않습니다.

🌱 Install

brew tap mongodb/brew
brew install mongodb-community
brew services start mongodb-community
mongo

🌱 RDBMS vs. MongoDB

RDBMSMongoDB
DatabaseDatabase
TableCollection
Tuple/RowDocument
ColumnKey/Field
Table JoinEmbedded Documents
PKPK(_id)
Database Server&Client
mysqld..mongod
mysql..mongo

🌱 Document?

Document는 RDMS의 record 와 비슷한 개념으로, key-value pair 형식입니다.

{
    "_id": ObjectId("5099803df3f4948bd2f98391"),
    "key1": "value1",
    "key2": { value2: "Y.J.", value22: "Jang" }
}

_id 는 12bytes의 hexadecimal 값으로, 각 document의 uniqueness를 제공합니다.
timestamp(4bytes) + machine id(3bytes)+ MongoDB 서버의 프로세스id(2bytes) +순차번호(3bytes)로 구성되어있습니다.

🌱 Command

# db 생성
> use DATABASE_NAME
switched to db DATABASE_NAME

# 현재 사용 중인 db 확인
> db
DATABASE_NAME

# db list
> show dbs
local             0.000GB
DATABASE_NAME     0.000GB

# db delete
> db.dropDatabase();
{ "dropped" : "DATABASE_NAME", "ok" : 1 }
FieldTypeDescription
cappedBoolean이 값을 true 로 설정하면 capped collection 을 활성화. Capped collection 이란, 고정된 크기(fixed size) 를 가진 컬렉션으로서, size 가 초과되면 가장 오래된 데이터를 덮어씀. 이 값을 true로 설정하면 size 값을 꼭 설정해야함
autoindexBooleantrue로 설정하면 _id 필드에 index를 자동으로 생성. 기본값 false
sizenumberCapped collection 을 위해 해당 컬렉션의 최대 사이즈(maximum size)를 ~ bytes로 지정
maxnumber해당 컬렉션에 추가 할 수 있는 최대 갯수를 설정
# Collection 생성
> db.createCollection("name", {
... capped: true,
... autoIndex: true,
... size: 6142800,
... max: 10000
... })
{ "ok" : 1 }

# Collection list
> show collections
name1
name2

#Collection 제거
> db.COLLECTION_NAME.drop()
true
# Document insert
> db.COLLECTION_NAME.insert({"key": "value", "key": "value"});
WriteResult({ "nInserted" : 1 })

# Document list
> db.COLLECTION_NAME.find() 
{ "_id" : ObjectId("56c08f3a4d6b67aafdeb88a3"),"key": "value", "key": "value"}
{ "_id" : ObjectId("56c08f474d6b67aafdeb88a4"), "key": "value", "key": "value"}

# Document delete
> db.COLLECTION_NAME.remove(criteria, justOne)
WriteResult({ "nRemoved" : 1 })
profile
💻 + ☕ = </>

0개의 댓글