diff --git a/src/mongoose/buildSchema.ts b/src/mongoose/buildSchema.ts index ee3ad1efd3..e30a3810c1 100644 --- a/src/mongoose/buildSchema.ts +++ b/src/mongoose/buildSchema.ts @@ -241,12 +241,16 @@ const fieldToSchemaMap: Record = { let localeSchema: { [key: string]: any } = {}; if (hasManyRelations) { - localeSchema._id = false; - localeSchema.value = { + localeSchema = { + ...formatBaseSchema(field, buildSchemaOptions), type: Schema.Types.Mixed, - refPath: `${field.name}.${locale}.relationTo`, + _id: false, + value: { + type: Schema.Types.Mixed, + refPath: `${field.name}.${locale}.relationTo`, + }, + relationTo: { type: String, enum: field.relationTo }, }; - localeSchema.relationTo = { type: String, enum: field.relationTo }; } else { localeSchema = { ...formatBaseSchema(field, buildSchemaOptions), @@ -263,12 +267,16 @@ const fieldToSchemaMap: Record = { localized: true, }; } else if (hasManyRelations) { - schemaToReturn._id = false; - schemaToReturn.value = { + schemaToReturn = { + ...formatBaseSchema(field, buildSchemaOptions), type: Schema.Types.Mixed, - refPath: `${field.name}.relationTo`, + _id: false, + value: { + type: Schema.Types.Mixed, + refPath: `${field.name}.relationTo`, + }, + relationTo: { type: String, enum: field.relationTo }, }; - schemaToReturn.relationTo = { type: String, enum: field.relationTo }; if (field.hasMany) { schemaToReturn = {