sourceafMorphia::BsonProp.fan


** Marks a field as a property of a BSON object.
facet class BsonProp {

    ** Name of the BSON property name this field maps to. 
    ** 
    ** Defaults to the field name.
    const Str?  name

    ** The implementation 'Type' to be instantiated should this field reference a mixin or a superclass. 
    ** Used when mapping from BSON objects to Fantom objects. 
    ** 
    ** For dynamic typing evaluated at runtime, use a field named '_type':
    ** 
    **   @BsonProp Type _type := this.typeof
    ** 
    ** Defaults to the field type.
    const Type? implType

    ** When converting to BSON, any Fantom value that equals this 'defVal' will be treated as if 
    ** it were 'null' and (depending on 'ObjConverter') will *not* exist in the BSON object.
    ** 
    ** When converting from BSON, any 'null' value will be converted to this 'defVal'.
    ** 
    ** This is most useful for saving marker booleans and to avoid saving empty lists and maps.
    const Obj? defVal
}