MongoDB Document 공통점, _id 필드를 기본값으로 반드시 가지고 있어야 합니다.
_id 필드의 값은 각 Document를 구별하는 역할을 합니다.
내부의 필드와 값이 똑같다 해도, _id 값이 다르면 서로 다른 Document 가 됩니다.
Document 내 필드와 값이 달라도, _id 값이 같다면 서로 같은 Document 여겨 에러를 발생시킵니다.
따라서 각 Document 고유한 _id 값을 가지고 있어야 합니다.
Document 추가 시 _id 값을 특정하지 않았다면, 자동적으로 _id 필드가 생성되고 값에 ObjectId 타입이 할당됩니다.
터미널을 사용해 Atlas Cluster에 연결-!
ex)
{
"_id": ObjectId("5vjio32nio"),
"city": "seoul",
"zip": 14361,
"loc": {
"x": 96.13464,
"y"; 32.13463
}
"state": "KG"
}
insert를 이용하여 Document를 삽입하기 위해서는 shell에 작성된 것과 같이 insert()의 괄호 안에 삽입하고자 하는 Document를 작성합니다.
새로운 데이터를 insert했음에도 _id 값이 0일 경우, Document 추가에 실패했다는 것을 알 수 있습니다. (기존 데이터가 있을 경우 _id 값 증가가 안됐을 경우..)
writeError부분 duplicate key error는 이미 같은 _id값을 가지고 있는 Document가 존재하기 때문에 중복된 데이터를 삽입할 수 없다는 것을 의미합니다.
writeResult({"nInserted": 1}) 를 통해 zips collection 내 작성한 Document 삽입을 확인 할 수 있습니다.
_id를 통해 차이점을 확인할 수 있고, Document 삽입 시 자동적으로 해당 값 증가를 확인할 수 있습니다.
document가 삽입될 때 배열 안의 리스트 된 순서대로 진행되기 때문에 _id값 중복이 생길 경우 Document 추가가 안된다.
(작업 순서 변경은 가능하다.)
[
{“_id" : "1", "test": "1"},
{"_id" : "1", "test": "2"},
{"_id" : "3", "test": “3"}
]
위와 같이 "_id" 값이 "1" 중복으로 존재할 경우, duplicate key 에러를 발생시킨다.
MongoDB는 사용자가 쉽게 새로운 Collection이나 DB를 생성하기를 원했습니다.
그래서 사용자가 존재하지 않는 Collection에 Document를 넣는 경우 그와 동시에 Collection이 생성됩니다.
일정 조건에 따라 데이터를 조회하는 방법과 조회한 데이터의 수를 세는 방법
작업을 위해
show dbs
라는 명령어를 사용합니다.
위 명령어를 통해 database 목록을 볼 수 있고,
use sample_db
를 통해 사용하고자하는 데이터베이스를 입력하면 됩니다.
데이터베이스 접근 후
show collections
라는 명령어를 입력하면 데이터베이스 안에 존재하는 collection 리스트가 나타나는 것을 확인할 수 있습니다.
ex) 예를들어 zipc라는 collections에서 find 명령어를 통해 조건에 맞는 값을 검색하고 싶을 때
(데이터베이스이름).zips.find({"state": "NY"})
이미 use (데이터베이스이름) 을 입력한 경우에는 데이터베이스 이름을 특정해서 작성할 필요가 없습니다.
위 명령어를 입력할 경우 JSON 형식으로 화면에 출력되는 것을 확인할 수 있습니다.
ex) 조건을 find(<쿼리문1, 쿼리문2>) 형태로 적어주면 됩니다.
db.zips.find({"state": "NY", "city": "ALBANY"})