이씨 쓰다가 날렸다 ㅠㅠ
MongoDB는 NoSQL형식의 데이터 베이스로 자료형 관계없이 데이터를 저장할 수 있는 장점이 있다.
관계형 데이터 베이스와 NoSQL데이터 베이스중 필요한 경우에 적절히 선정하여 사용하면 된다.
Mongo DB를 설치할때 Compass를 함께 설치하게 되면 아래 Moongse라는 터미널을 통해 Collection과 Database에 접근할 수 있다.
mongoDB 조건들은 대부분 Object형을 사용해서 검색하고 거를 수 있다. 예를 들어 항목중에 price가 있고 1000원 이상인 값들이 필요하다고 하면 { price : price > 1000 } 으로 사용하면 된다.
물론 저게 정답은 아니고 저런 느낌으로 사용해야 한다는 것!
1. show db : db목록 확인
2. use [db name] : db선택
여기까지 하면 collection 사용 준비 완료!
db -> collection 순서로 접근해야 한다.
- db.[collection name].find({ 조건 json }, { 제한 json })
collection이름이 book 이라고 하면 db.collection.find로 접근하면 된다.
price가 20000원인 값들을 찾고 싶으면 아래처럼 검색하면된다.
- db.book .find({ price : 20000 }, { 제한 json })
만약 20000원 이상인 값들을 검색하고 싶으면? price : price > 20000이면 좋겠지만 이런 형식은 json이 인식할 수 없다
- db.book .find({ $gt : { price : 20000 } }, { 제한 json })
$gt이라는 식별자를 통하여 구분해주어야 한다.
제한 json에는 불러오고 싶은 값들을 구분할 수 있다.
- db.book .find({ $gt : { price : 20000 } }, { price : 0 })
price : 0 이라는 object를 부여하면 해당하는 key값들은 불러오지 않는다.
-db.book.insertOne({삽입하고 싶은 데이터 형})
-db.book.insertMany([{삽입하고 싶은 데이터 여러개])
-db.book.updateOne({삽입할 절 조건},{$set : {삽입하고 싶은 값}})
-db.book.updateMany({삽입할 절 조건},{$set : {삽입하고 싶은 값}})
$set이라는 식별자를 사용해야 한다.
12번째 책 값을 4만원으로 올리고 싶다면 아래처럼 수행하면 되겠다.
-db.book.updateOne({id : 12},{$set : {price : 40000}}
-db.book.deleteOne()
-db.book.deleteMany()
MongoDB는 현재도 사용중이라 계속 업데이트 할 예정이다.
NoSQL은 검색속도는 느리지만 제약이 많은 만큼 사용하기 편해서 놓을 수 없는 마약과 같다 ㅎ...
거의 모든 Action이 Json을 이용해서 수행되는 점이 SQL을 사용하는 관계형 데이터베이스와 다른 점이라 매력적으로 느껴진다.
최종 수정일 : 230406
[Oracle] 시간 / DATE / 지금으로부터 16시간 차이나는 값만 가지고오기 .. (0) | 2022.08.18 |
---|---|
[Oracle] Oracle에서 listagg를 사용해보자 (0) | 2022.02.28 |
[개념]with과 recursive (0) | 2021.01.03 |