모든 MongoDB 도큐먼트는 모든 도큐먼트가 _id
필드를 기본값으로 반드시 가지고 있어야 한다는 공통점이 있다.
또한 도큐먼트를 추가할 때, _id 필드와 값을 특정하지 않았다면, 자동적으로 _id 필드가 생성되고 값에 ObjectId 타입이 할당된다.
이때 도큐먼트 내 필드와 값이 똑같다 할지라도, _id 값이 다르면 서로 다른 도큐먼트로 간주하며 도큐먼트 내 필드와 값이 다르다고 하더라도, _id값이 같다고 하면 서로 같은 도큐먼트로 여겨 에러를 발생시킨다.
-> 따라서 도큐먼트는 고유한 _id 값을 가지고 있어야 하며 도큐먼트를 추가할 때, _id 필드와 값을 특정하지 않았다면 자동적으로 _id 필드가 생성되고 값에 ObjectId 타입이 할당된다.
Inset 명령어를 사용하면 주어진 도큐먼트 배열의 인덱스 순서로 작업이 실행된다.
그러나 ordered를 추가하면 순서에 상관없이 고유한 _id를 가진 도큐먼트는 모두 컬렉션에 삽입된다.
찾을 때는 find라는 명령어를 사용한다.
db.collection_name.find(<쿼리문>)
이 명령어를 사용할 때, 이미 필요한 데이터베이스 공간으로 이동했기 때문에 사용할 데이터베이스의 이름을 특정해서 작성할 필요가 없다.
만약 두 가지의 조건을 주고 싶다면 이렇게 작성하면 된다.
db.collection_name.find(<쿼리문1, 쿼리문2>)
만약 전체의 조건을 보고 싶다면?
db.collection_name.find()
그런데 이렇게 출력하면 보기가 좀 불편하다.
그래서 이렇게 출력한다.(데이터 수를 조회)
db.collection_name.find().count()
특정한 조건을 조회하려면?
db.collection_name.findOne()
mongo shell에서 도큐먼트를 업데이트 하기 위한 방법에는 updateOne, updateMany 등 2가지가 있다.
mongo shell을 사용하여 도큐먼트 및 컬렉션을 삭제하려고 한다면, deleteOne( )과 deleteMany( )를 사용할 수 있다.
컬렉션 삭제
db.collection_name.drop()