Esta documentación ha sido traducida automáticamente por IA.
Campo
Resumen
Clase de gestión de campos de colección (clase abstracta). Es también la clase base para todos los tipos de campo. Cualquier otro tipo de campo se implementa heredando de esta clase.
Para saber cómo personalizar campos, consulte [Extender tipos de campo]
Constructor
Normalmente, los desarrolladores no lo llaman directamente. Se invoca principalmente a través del método db.collection({ fields: [] }) como punto de entrada proxy.
Al extender un campo, se implementa principalmente heredando de la clase abstracta Field y luego registrándola en la instancia de Database.
Firma
constructor(options: FieldOptions, context: FieldContext)
Parámetros
Miembros de Instancia
name
Nombre del campo.
type
Tipo de campo.
dataType
Tipo de almacenamiento del campo en la base de datos.
options
Parámetros de configuración de inicialización del campo.
context
Objeto de contexto del campo.
Métodos de Configuración
on()
Un método de definición abreviado basado en eventos de la colección. Equivalente a db.on(this.collection.name + '.' + eventName, listener).
Normalmente, no es necesario sobrescribir este método al heredar.
Firma
on(eventName: string, listener: (...args: any[]) => void)
Parámetros
off()
Un método de eliminación abreviado basado en eventos de la colección. Equivalente a db.off(this.collection.name + '.' + eventName, listener).
Normalmente, no es necesario sobrescribir este método al heredar.
Firma
off(eventName: string, listener: (...args: any[]) => void)
Parámetros
bind()
El contenido que se ejecuta cuando un campo se añade a una colección. Se utiliza normalmente para añadir escuchadores de eventos de la colección y otros procesos.
Al heredar, debe llamar primero al método super.bind() correspondiente.
Firma
bind()
unbind()
El contenido que se ejecuta cuando un campo se elimina de una colección. Se utiliza normalmente para eliminar escuchadores de eventos de la colección y otros procesos.
Al heredar, debe llamar primero al método super.unbind() correspondiente.
Firma
unbind()
get()
Obtiene el valor de un elemento de configuración de un campo.
Firma
get(key: string): any
Parámetros
Ejemplo
merge()
Fusiona los valores de los elementos de configuración de un campo.
Firma
merge(options: { [key: string]: any }): void
Parámetros
Ejemplo
remove()
Elimina el campo de la colección (solo de la memoria).
Ejemplo
Métodos de Base de Datos
removeFromDb()
Elimina el campo de la base de datos.
Firma
removeFromDb(options?: Transactionable): Promise<void>
Parámetros
existsInDb()
Determina si el campo existe en la base de datos.
Firma
existsInDb(options?: Transactionable): Promise<boolean>
Parámetros
Lista de Tipos de Campo Integrados
NocoBase incluye algunos tipos de campo de uso común. Puede usar directamente el nombre de tipo correspondiente para especificar el tipo al definir los campos de una colección. Los diferentes tipos de campo tienen configuraciones de parámetros distintas; consulte la lista a continuación para obtener más detalles.
Todos los elementos de configuración para los tipos de campo, excepto los que se presentan a continuación, se pasarán a Sequelize. Por lo tanto, todos los elementos de configuración de campo compatibles con Sequelize se pueden usar aquí (como allowNull, defaultValue, etc.).
Además, los tipos de campo del lado del servidor resuelven principalmente problemas de almacenamiento en la base de datos y algunos algoritmos, y son básicamente independientes de los tipos de visualización de campo y los componentes utilizados en el frontend. Para los tipos de campo del frontend, consulte las instrucciones correspondientes en el tutorial.
'boolean'
Tipo de valor lógico (booleano).
Ejemplo
'integer'
Tipo entero (32 bits).
Ejemplo
'bigInt'
Tipo entero largo (64 bits).
Ejemplo
'double'
Tipo de punto flotante de doble precisión (64 bits).
Ejemplo
'real'
Tipo de número real (solo para PostgreSQL).
'decimal'
Tipo decimal.
'string'
Tipo de cadena de texto. Equivalente al tipo VARCHAR en la mayoría de las bases de datos.
Ejemplo
'text'
Tipo de texto. Equivalente al tipo TEXT en la mayoría de las bases de datos.
Ejemplo
'password'
Tipo de contraseña (extensión de NocoBase). Cifra contraseñas utilizando el método scrypt del paquete nativo crypto de Node.js.
Ejemplo
Parámetros
'date'
Tipo de fecha.
'time'
Tipo de hora.
'array'
Tipo de array (solo para PostgreSQL).
'json'
Tipo JSON.
'jsonb'
Tipo JSONB (solo para PostgreSQL; otros se compatibilizarán como tipo 'json').
'uuid'
Tipo UUID.
'uid'
Tipo UID (extensión de NocoBase). Tipo de identificador de cadena aleatoria corta.
'formula'
Tipo fórmula (extensión de NocoBase). Permite configurar cálculos de fórmulas matemáticas basados en mathjs. La fórmula puede hacer referencia a los valores de otras columnas en el mismo registro para el cálculo.
Ejemplo
'radio'
Tipo radio (extensión de NocoBase). Como máximo, una fila de datos en toda la colección puede tener el valor true para este campo; todas las demás serán false o null.
Ejemplo
Solo hay un usuario marcado como 'root' en todo el sistema. Después de que el valor 'root' de cualquier otro usuario se cambie a true, todos los demás registros con 'root' en true se cambiarán a false:
'sort'
Tipo de ordenación (extensión de NocoBase). Ordena basándose en números enteros, genera automáticamente un nuevo número de secuencia para los nuevos registros y reordena los números de secuencia cuando se mueven los datos.
Si una colección define la opción sortable, también se generará automáticamente un campo correspondiente.
Ejemplo
Las publicaciones se pueden ordenar según el usuario al que pertenecen:
'virtual'
Tipo virtual. No almacena datos realmente, solo se utiliza para definiciones especiales de getter/setter.
'belongsTo'
Tipo de asociación de muchos a uno. La clave foránea se almacena en su propia colección, a diferencia de hasOne/hasMany.
Ejemplo
Cualquier publicación pertenece a un autor:
'hasOne'
Tipo de asociación de uno a uno. La clave foránea se almacena en la colección asociada, a diferencia de belongsTo.
Ejemplo
Cada usuario tiene un perfil:
'hasMany'
Tipo de asociación de uno a muchos. La clave foránea se almacena en la colección asociada, a diferencia de belongsTo.
Ejemplo
Cualquier usuario puede tener múltiples publicaciones:
'belongsToMany'
Tipo de asociación de muchos a muchos. Utiliza una colección intermedia para almacenar las claves foráneas de ambas partes. Si no se especifica una colección existente como intermedia, se creará automáticamente una colección intermedia.
Ejemplo
Cualquier publicación puede tener múltiples etiquetas, y cualquier etiqueta puede ser añadida a múltiples publicaciones:

