기본 지식을 추가하세요. mongo 쉘은 JavaScript을 기반으로 구축되었습니다. V8이든 SpiderMonkey(둘 다 mongo 쉘의 엔진으로 사용됨)이든 모두 EMCAScript를 따르고 해당 하위 세트 중 하나를 구현합니다. 이는 쉘의 모든 데이터 유형이 ECMA 표준에 지정된 데이터 유형이어야 함을 의미합니다. 표준을 확인해 보면 JS의 데이터 유형은 매우 제한되어 있으며 기본적으로 데이터베이스의 요구 사항을 충족할 수 없습니다. 따라서 BSON에서는 JSON 사양에 없는 데이터 유형을 지원합니다. ObjectID도 그중 하나입니다. 그래서 남은 문제는 JS 문법에 없는 데이터 타입을 어떻게 표현하느냐 하는 것이고, 그 결과가 보시는 ObjectID("...") 입니다.
표시되는 내용은 문자열인 것처럼 보이지만 문서의 _id는 실제로 ObjectId 개체이므로
ObjectId()
메서드를 사용하여 문자열을 개체로 변환한 후에 사용해야 합니다.기본 지식을 추가하세요.
mongo 쉘은
JavaScript
을 기반으로 구축되었습니다.V8
이든SpiderMonkey
(둘 다 mongo 쉘의 엔진으로 사용됨)이든 모두 EMCAScript를 따르고 해당 하위 세트 중 하나를 구현합니다. 이는 쉘의 모든 데이터 유형이 ECMA 표준에 지정된 데이터 유형이어야 함을 의미합니다. 표준을 확인해 보면 JS의 데이터 유형은 매우 제한되어 있으며 기본적으로 데이터베이스의 요구 사항을 충족할 수 없습니다. 따라서BSON
에서는JSON
사양에 없는 데이터 유형을 지원합니다.ObjectID
도 그중 하나입니다. 그래서 남은 문제는 JS 문법에 없는 데이터 타입을 어떻게 표현하느냐 하는 것이고, 그 결과가 보시는ObjectID("...")
입니다._id는 전역적으로 고유하기 때문입니다.