모든 도큐먼트는 고유한 _id값을 가지고 있어야 합니다. 이 _id 필드의 값은 각 도큐먼트를 구별하는 역할을 합니다. 도큐먼트를 추가할 때 _id 필드와 값을 특정하지 않았다면, 자동적으로 _id 필드가 생성되고 값에 ObjectId 타입이 할당됩니다.
도큐먼트를 MongoDB 샘플 데이터베이스 중 하나인 zips라고 하는 컬렉션에 삽입해 보자.
삽입을 하기 위해 insert라는 명령어를 사용한다.
insert()의 괄호 안에 삽입하고자 하는 도큐먼트를 작성한다.
이 명령어에 따른 결과물이 하단에 WriteResult로 출력됩니다.
nInserted라는 항목이 존재. 삽입된 도큐먼트의 수를 의미함. 이 부분이 0이라는 것은 도큐먼트 추가에 실패했다는 뜻임. writeError라는 부분을 통해, duplicate key 에러라고 하는 이유로 추가가 되지 않았음을 알 수 있다. duplicate key 에러는 이미 같은 _id 값을 가지는 도큐먼트가 컬렉션 내부에 존재하기 때문에 중복된 데이터는 삽입할 수 없다는 것을 의미합니다.
같은 데이터이지만 _id 값을 지운 도큐먼트를 zips 컬렉션에 추가해 보도록 하자. 주황색 블록으로 작성된 부분에서는 _id 값을 볼 수 있다. 동일한 도큐먼트의 내용을 가지고 있지만, 아래 파란색 블록의 부분에서는 _id값을 삭제한 후 삽입 작업을 실행하였다. 그 결과, WriteResult{("nInserted" : 1}) 로 zips 컬렉션에 우리가 작성한 1개의 도큐먼트가 삽입되었다.