Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Schema.prototype.jsonSchema(): convert Mongoose Schema to JSON schema #15184

Merged
merged 18 commits into from
Jan 20, 2025

Conversation

vkarpov15
Copy link
Collaborator

Summary

Re: #11162, add a jsonSchema() method to schemas that allows creating a JSON schema for use with MongoDB server's $jsonSchema data validation. Alternatively, it can also produce a JSON schema for validation with normal JSON schema validators, like ajv - MongoDB's JSON schema syntax is slightly different and supports different types.

Examples

@vkarpov15 vkarpov15 added this to the 8.10 milestone Jan 15, 2025
lib/schema.js Outdated Show resolved Hide resolved
lib/schema.js Outdated Show resolved Hide resolved
lib/schema.js Outdated Show resolved Hide resolved
lib/schema.js Outdated Show resolved Hide resolved
lib/schema.js Outdated Show resolved Hide resolved
@hasezoey hasezoey added the new feature This change adds new functionality, like a new method or class label Jan 16, 2025
@vkarpov15 vkarpov15 merged commit 62e9447 into 8.10 Jan 20, 2025
81 checks passed
Comment on lines +96 to +98
result.additionalProperties = useBsonType
? { ...embeddedSchemaType.toJSONSchema(options) }
: { ...embeddedSchemaType.toJSONSchema(options) };
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should those 2 paths be the exact same?

@hasezoey hasezoey deleted the vkarpov15/gh-11162 branch January 21, 2025 10:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new feature This change adds new functionality, like a new method or class
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants