• Public
  • Public/Protected
  • All

A subclass of ArrayField which supports an embedded Document collection. Invalid elements will be dropped from the collection during validation rather than failing for the field entirely.





readonly: boolean
element: DataField

The data type of each element in this array

The initially provided options which configure the data field

name: any

The field name of this DataField instance. This is assigned by SchemaField#initialize.

parent: any

A reference to the parent schema to which this DataField belongs. This is assigned by SchemaField#initialize.

hierarchical: boolean = true
recursive: boolean = true


  • get model(): {}
  • A reference to the DataModel subclass of the embedded document element

    Returns {}

    • The DataSchema of the contained Document model.

      Returns SchemaField

    • get fieldPath(): string
    • A dot-separated string representation of the field path within the parent schema.

      Returns string

    • The Collection implementation to use when initializing the collection.

      Returns typeof EmbeddedCollection

    • get _defaults(): any
    • Default parameters for this field type


      Returns any


    • _cleanType(value: any, options: any): any
    • initialize(value: any, model: any, options?: {}): any
    • toObject(value: any): any
    • apply(fn: any, value?: any[], options?: {}): {}[]
    • override


      • fn: any
      • value: any[] = []
      • options: {} = {}

        Returns {}[]

      • migrateSource(sourceData: any, fieldData: any): void
      • Migrate this field's candidate source data.


        • sourceData: any

          Candidate source data of the root model

        • fieldData: any

          The value of this field within the source data

        Returns void

      • getCollection(parent: Document): Collection<Document>
      • Return the embedded document(s) as a Collection.


        • parent: Document

          The parent document.

        Returns Collection<Document>

      • _validateModel(changes: any, options: any): void
      • _cast(value: any): any[]
      • clean(value: any, options: { partial: boolean; source: any }): any
      • Coerce source data to ensure that it conforms to the correct data type for the field. Data coercion operations should be simple and synchronous as these are applied whenever a DataModel is constructed. For one-off cleaning of user-provided input the sanitize method should be used.


        • value: any

          The initial value

        • options: { partial: boolean; source: any }
          • partial: boolean
          • source: any

        Returns any

        The cast value

      • getInitialValue(data: any): any
      • Attempt to retrieve a valid initial value for the DataField.


        An error if there is no valid initial value defined


        • data: any

          The source data object for which an initial value is required

        Returns any

        A valid initial value

      • Validate a candidate input for this field, ensuring it meets the field requirements. A validation failure can be provided as a raised Error (with a string message), by returning false, or by returning a DataModelValidationFailure instance. A validator which returns true denotes that the result is certainly valid and further validations are unnecessary.


        Returns DataModelValidationFailure

        Returns a DataModelValidationFailure if a validation failure occurred.

      • _validateSpecial(value: any): boolean | void
      • Special validation rules which supersede regular field validation. This validator screens for certain values which are otherwise incompatible with this field like null or undefined.


        May throw a specific error if the value is not valid


        • value: any

          The candidate value

        Returns boolean | void

        A boolean to indicate with certainty whether the value is valid. Otherwise, return void.

      • _validateElementType(element: any): any