포도가게의 개발일지

[DB] MongoDB[2] 본문

DB

[DB] MongoDB[2]

grape.store 2022. 4. 10. 22:35
반응형

Basically CRUD

 

data : insert나 변경되고나 하는 data 내용

filter : 찾고자 하는 data의 조건

 

MongoDB Reserved Operators

https://www.mongodb.com/docs/manual/reference/operator/

 

Operators — MongoDB Manual

Docs Home → MongoDB ManualQuery and Projection OperatorsQuery operators provide ways to locate data within the database and projection operators modify how data is presented.Update OperatorsUpdate operators are operators that enable you to modify the dat

www.mongodb.com

 

update vs updateMany vs replace

 

update key값을 제외하고 모든 data를 overwrite함.. 해당 개체의 문서를 새로운 문서로 바꿉니다.

-> 때문에 이러한 문제로 특수한 경우가 아닌경우 부분적으로 변경을 원하는경우에는 updateOne 또는 updataeMany가 권장됩니다.

교체를 원하는 경우 replaceOne을 사용하십시오 

-> 이방법이 데이터를 교체하는 더욱 안전한 방법입니다.

 

find projection

- finde method에 두번째 매개변수인 projection을 통해 return 되는 value들을 바꿀수있다. 1 === true, 0 === false를 의미

db.passengers.find({},{name:1, _id:0}).pretty()

 

Embedded Documents

- mongodb에서는 100개 level의 sub doc을 가질수있습니다. 하지만 전체 문서의 크기가 16MB 미만이어야 합니다.

- mongodb는 sub doc에 배열type에 있는 value를 바로 find로 접근하여 해당하는 docs들을 전부가져올수있습니다.

- nested field(중첩필드에 접근할때는) wrapping해서 접근해야합니다.

db.flightData.find({"status.description": "on-time"}).pretty()

 

mongoDB 구조

Database <--> Collections <--> Documents

  • Database <--> Collections은 doc이 insert될때 lazily하게 create 된다.
  • 각 doc에는 _id라고하는 고유한 ID가 필요합니다. _id는 스스로 설정하거나 mongodb가 생성한 것을 사용할수있으며 문서(embedded doc)를 포함할수있습니다. 사실상 any 다 되는듯
  • find()는 cursor를 리턴합니다. document의 리스트가 아니라!!
  • filters를 사용하여 문서 범위를 좁힐 수 있습니다.

'DB' 카테고리의 다른 글

MongoDB  (0) 2022.12.20
[DB] MongoDB[1]  (0) 2022.04.03
DB Index?(업데이트 필요)  (0) 2022.02.07
SQL vs. NoSQL  (0) 2022.02.07
SQL query 구문 연습  (0) 2021.12.23
Comments