삽입 후 MongoDB ObjectId를 얻는 방법

삽입 후 MongoDB ObjectId를 얻는 방법

2022-09-03 last update

6 minutes reading MongoDB
MongoDB는 NoSQL 유형의 데이터베이스에 속하며 다른 데이터베이스 관리 시스템과 마찬가지로 MongoDB는 데이터에 대한 여러 작업을 처리하는 데 사용됩니다. 각 문서에는 사용자 정의 또는 시스템 정의 고유 ID가 있습니다. 사용자 정의 ID는 삽입하는 동안 사용자가 할당합니다. 반면에 사용자가 ID 할당을 잊어버린 경우 시스템은 문서에 고유한 값을 자동으로 할당합니다. 그 고유 번호는 MongoDB에서 ObjectId로 알려져 있습니다.
모든 문서의 ObjectId는 16진수로 구성되며 모든 문서를 고유하게 식별하는 데 사용할 수 있습니다. 시스템 정의 ObjectId는 항상 고유합니다. 마찬가지로 사용자는 단일 id 값을 여러 문서에 할당할 수 없습니다.
이 튜토리얼은 삽입 후 ObjectId를 얻는 가능한 방법을 배우기 위한 간단한 가이드를 제공합니다. 깊은 통찰력을 얻기 전에 이 가이드를 시작하여 MongoDB의 ObjectId 할당을 이해하겠습니다.

시스템 정의 고유 ID와 사용자 정의 고유 ID의 차이점은 무엇입니까?


앞서 논의한 바와 같이 MongoDB의 모든 문서에는 두 가지 광범위한 범주로 분류되는 고유 ID가 포함되어 있습니다. 즉, 사용자 정의 및 시스템 정의. 여기에서는 두 섹션을 모두 설명하는 섹션을 준비했습니다.
시스템 정의 ID: 사용자가 삽입 프로세스 중에 "_id"필드를 추가하는 것을 잊은 경우 시스템은 자동으로 해당 문서에 ObjectId를 할당합니다. 예를 들어, 아래에 주어진 명령은 staff 컬렉션에 두 개의 필드를 삽입합니다. 삽입하는 동안 고유한 ID를 제공하지 않았음을 알 수 있습니다.
> db.staff.insert({name: "Alen", score :10})

아래 명령을 실행하여 staff 컬렉션 내부의 내용을 확인합시다.
> db.staff.find().pretty()

문서를 삽입하는 동안 ID를 제공하지 않았기 때문에 시스템이 ObjectId를 할당한 것이 출력에서 ​​관찰됩니다.
사용자 정의 ID: 사용자 정의 ID를 더 잘 이해하기 위해 아래에 언급된 명령에 따라 직원 컬렉션에 문서를 삽입했습니다. 명령에 "Id"필드가 포함되어 있음을 알 수 있습니다.
> db.employees.insert({_id: 1, name: "Sam"})

다음 명령을 실행하여 삽입을 확인하십시오.
> db.employees.find().pretty()

그리고 출력에서 ​​"_id"필드에 위의 명령에 삽입된 것과 동일한 값이 포함되어 있음을 알 수 있습니다.

삽입 후 ObjectId를 얻는 방법


이 섹션에는 MongoDB에 삽입한 후 "ObjectId"를 얻는 가장 좋은 방법이 포함되어 있습니다. 컬렉션 이름은 "Authors"이며 여기에서 예제를 참조하는 데 사용됩니다.
문서의 ObjectId를 가져오는 일반적인 방법은 찾기 방법을 사용하는 것입니다. 아래에 언급된 명령은 "Authors"컬렉션에서 모든 콘텐츠를 검색합니다. 각 문서의 첫 번째 필드에는 해당 문서를 고유하게 식별하는 각 문서의 ID가 포함되어 있습니다.
> db.Authors.find().pretty()
Text

Description automatically generated

결론


모든 데이터베이스 관리 시스템(DBMS)의 주요 속성 중 하나는 저장된 데이터를 고유하게 식별하는 것입니다. 다른 DBMS와 마찬가지로 MongoDB도 컬렉션 내의 각 문서에 고유한 ID를 할당합니다. 이 MongoDB 시리즈 가이드에서는 ObjectId를 MongoDB에 삽입한 후 가져오는 방법을 배웠습니다. MongoDB에서 ObjectId를 확인하기 위해 find() 메서드를 자주 사용합니다. MongoDB의 ObjectId는 시스템에서 할당하며 길이도 깁니다. 따라서 수백 개의 문서에 대해 긴 고유 ID를 기억하는 것은 불가능합니다. 이 가이드를 따르면 모든 문서의 ObjectId를 확인한 다음 고유한 Id를 사용하여 문서에 액세스할 수 있습니다.