Schema Mappings
Auto-sync embedded references when source documents change.
Location: /src/autoMap/schemaMappings.json
How It Works
- You embed document references in schemas (e.g.,
user: { _id, fullName }) - You register the mapping in
schemaMappings.json - When source document updates, all referencing documents sync automatically
Config Format
{
"tasks": {
"user": {
"schema": "users"
},
"project": {
"schema": "projects"
}
}
}
Means: In tasks collection, fields user and project reference users and projects collections.
Example
Schema with embedded reference:
// tasks.schema.js
project: z
.object({
_id: z.string(),
name: z.coerce.string().nullable().optional(),
logoUrl: z.coerce.string().nullable().optional(),
})
.nullable()
.optional(),
Mapping config:
{
"tasks": {
"project": {
"schema": "projects"
}
}
}
Result: When project's name or logoUrl changes, all tasks with that project update automatically.
Adding New Mapping
- Define embedded reference in schema (include fields to sync)
- Add entry to
schemaMappings.json:
{
"yourResource": {
"fieldName": {
"schema": "sourceSchema"
}
}
}
Rules
- Only fields defined in the embedded object shape are synced
- Works for both single references and arrays
- Changes sync on source document
updatedevent