포도가게의 개발일지
[DB] MongoDB[2] 본문
반응형
Basically CRUD
data : insert나 변경되고나 하는 data 내용
filter : 찾고자 하는 data의 조건
MongoDB Reserved Operators
https://www.mongodb.com/docs/manual/reference/operator/
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