본문으로 건너뛰기
AZ Tools

JSON to Mongoose 스키마 생성기

JSON 객체를 타입이 매핑된 경로가 포함된 Mongoose 스키마로 브라우저에서 변환합니다.

Mongoose 스키마

사용법

  1. 입력 상자에 JSON을 붙여넣거나 입력합니다.
  2. 필요하면 모델 이름을 변경합니다(기본값 AutoGenerated).
  3. 출력 상자에서 생성된 스키마를 복사합니다.

자세한 설명

펼치기

JSON 객체를 붙여넣으면 각 경로가 스키마 타입으로 매핑된 Mongoose 스키마를, 중첩 객체는 서브도큐먼트로 인라인 처리하고 아래쪽에 모델 익스포트까지 붙여 바로 얻을 수 있습니다. 문자열·숫자·불리언은 그대로 매핑되고, null은 Schema.Types.Mixed로, 빈 배열은 [Schema.Types.Mixed]로 처리됩니다. 표본 하나로는 무엇이 들어갈 자리인지 알 수 없기 때문입니다. 한 가지 매핑은 다시 살펴볼 만합니다. JSON에는 날짜 타입이 없어서 ISO 타임스탬프가 문자열로 도착하고 String으로 지정됩니다. Mongoose가 날짜로 캐스팅하고 질의하게 하려면 해당 경로를 직접 Date로 바꾸세요. _id는 Mongoose가 알아서 추가하므로 따로 선언할 필요가 없습니다. 모든 처리는 브라우저에서 이루어지며 JSON은 업로드되지 않습니다.

자주 묻는 질문

숫자는 어떤 타입이 되나요?

모든 JSON 숫자는 Number로 매핑됩니다 — Mongoose는 정수와 실수를 구분하지 않습니다. 정수 전용 경로가 필요하면 커스텀 검증기를 사용하세요.

null이나 빈 배열은 어떻게 처리되나요?

샘플로 타입을 추론할 수 없으므로 null은 Schema.Types.Mixed로, 빈 배열은 [Schema.Types.Mixed]로 변환됩니다.

중첩 객체는 어떻게 처리되나요?

중첩 객체는 중첩 경로 정의(서브도큐먼트)로 인라인됩니다. 빈 객체는 {}가 됩니다.

제 JSON이 어딘가로 전송되나요?

아니요. 변환은 전적으로 브라우저에서 이루어지며 아무것도 업로드되지 않습니다.

타임스탬프가 String으로 나왔는데 맞나요?

표본이 보여 준 그대로입니다. JSON에는 날짜 타입이 없어서 ISO 타임스탬프가 텍스트로 도착하고 String으로 지정됩니다. Mongoose가 이를 날짜로 캐스팅하고 인덱싱하며 사전순이 아니라 날짜로 비교하게 하려면 해당 경로를 직접 Date로 바꾸세요.

_id를 선언해야 하나요?

아닙니다. Mongoose가 모든 스키마에 ObjectId 타입의 _id를 알아서 추가하며, 같은 이름의 경로를 직접 넣으면 충돌합니다. createdAt과 updatedAt도 자동으로 관리되길 원한다면 스키마 옵션에 timestamps: true를 넘기세요.

관련 도구