[MongoDB] 데이터베이스, 컬렉션
몽고디비에서 데이터베이스와 컬렉션을 만들고 이용하는 방법을 알아보겠습니다.
1. 데이터베이스 생성하기
시작하기 앞서 지금 어떤 데이터베이스가 있는지 알아보겠습니다. 현재 작업중인 데이터베이스를 확인하는 명령어는 db명령입니다.
db
현재는 test라는 데이터베이스에서 작업중입니다. 실습을 위한 데이터베이스를 하나 만들어보겠습니다. 몽고디비에서 데이터베이스를 생성하는 명령어는 use입니다.
use 데이터베이스명
use가 작업할 데이터베이스를 선택하는 일도 하지만, 지정한 데이터베이스명에 일치하는 데이터베이스가 없을 경우, 데이터베이스를 생성하기도 합니다.
practice라는 이름의 db를 생성하고 선택까지 되었습니다.
현재 존재하는 데이터베이스를 확인하는 명령은 show dbs입니다. db가 생성되어 있더라도 내용이 비어있으면(컬렉션이 존재하지 않는다면) 다음과 같이 0로 나타납니다.
show dbs
2. 컬렉션 생성
데이터베이스 생성과 마찬가지로 컬렉션도 처음 삽입(insert)과정을 거칠 때 존재하지 않는 이름이라면 새로 만들게 됩니다. 옵션은 공식 문서에서 자세히 확인할 수 있습니다.
db.createCollection("컬렉션명", 옵션)
또는 다음과 같이 첫 번째 도큐먼트를 삽입하는 동시에 컬렉션을 생성해주는 방식도 존재합니다.
db.컬렉션명.insertOne({도큐먼트})
db.컬렉션명.createIndex({도큐먼트})
현재 데이터베이스 내에 생성된 컬렉션을 확인하는 명령어는 show collections입니다.
show collections
3. 도큐먼트 삽입
컬렉션 내부의 데이터인 도큐먼트를 삽입하는 방법을 알아보겠습니다. 도큐먼트는 insert() 함수로 하나 이상의 도큐먼트들을 일괄적으로 삽입할 수 있습니다.
db.컬렉션명.insert({도큐먼트}, ...)
이렇게 작성한 컬렉션 내부는 find() 함수를 통해 확인할 수 있습니다.
db.컬렉션명.find()
4. 데이터베이스, 컬렉션, 도큐먼트 삭제하기
그럼 이제 생성한 개체들을 삭제하는 방법에 대해서 알아보겠습니다.
4-1. 도큐먼트 삭제
도큐먼트는 remove() 함수로 삭제할 수 있습니다.
db.컬렉션명.remove(쿼리, justOne)
쿼리는 조건입니다. 조건에 부합하는 도큐먼트를 찾아서 지웁니다. 만약 쿼리를 비운채로 remove를 수행하면 컬렉션 내부의 모든 도큐먼트가 삭제됩니다.
justOne은 하나만 지울 것인지에 대한 boolean값입니다. 기본값은 false로 조건에 맞는 여러개를 지웁니다. 하나만 지우고 싶다면 true로 설정해주어야합니다.
조건으로 age가 30인 것을 지우겠다고, 명령을 주었습니다. 그 결과로 age가 30이었던 도큐먼트가 삭제되었음을 알 수 있습니다.
4-2. 컬렉션 삭제
컬렉션의 삭제는 drop() 함수로 수행합니다. 아까 생성때 만든 두 컬렉션 중 하나를 지워보겠습니다.
db.컬렉션명.drop()
4-3. 데이터베이스 삭제
데이터베이스의 삭제는 dropDatabase() 함수로 수행합니다. 삭제할 데이터베이스로 use명령을 통해 이동하고 삭제해주세요.
오늘은 몽고디비에서 데이터베이스/컬렉션/도큐먼트를 생성/삭제 하는 방법을 알아보았습니다.
참조
https://docs.mongodb.com/manual/core/databases-and-collections/