Esta documentación ha sido traducida automáticamente por IA.
En un objeto de colección dado, puede obtener su objeto Repository para realizar operaciones de lectura y escritura en la colección.
En el objeto Repository, puede llamar a los métodos relacionados con find* para realizar operaciones de consulta. Todos los métodos de consulta admiten el paso de un parámetro filter para filtrar datos.
El parámetro filter en Repository también ofrece una variedad de operadores para realizar operaciones de consulta más diversas.
Para más detalles sobre los operadores, consulte Operadores de filtro.
Al realizar una operación de consulta, puede controlar los campos de salida a través de los parámetros fields, except y appends.
fields: Especifica los campos de salida.except: Excluye los campos de salida.appends: Añade campos asociados a la salida.El parámetro filter admite el filtrado por campos asociados, por ejemplo:
Los campos asociados también pueden anidarse.
Puede ordenar los resultados de la consulta utilizando el parámetro sort.
También puede ordenar por los campos de objetos asociados.
Cree nuevos objetos de datos a través del Repository.
Al crear, también puede crear objetos asociados simultáneamente. De forma similar a las consultas, también se admite el uso anidado de objetos asociados, por ejemplo:
Si el objeto asociado ya existe en la base de datos, puede pasar su ID para establecer una asociación con él durante la creación.
Después de obtener un objeto de datos, puede modificar directamente sus propiedades en el objeto de datos (Model) y luego llamar al método save para guardar los cambios.
El objeto de datos Model hereda del Modelo de Sequelize. Para operaciones en el Model, consulte Sequelize Model.
También puede actualizar datos a través del Repository:
Al actualizar, puede controlar qué campos se actualizan utilizando los parámetros whitelist y blacklist, por ejemplo:
Al actualizar, puede establecer objetos asociados, por ejemplo:
Puede llamar al método destroy() en el Repository para realizar una operación de eliminación. Debe especificar los criterios de filtro al eliminar:
Normalmente no es llamado directamente por los desarrolladores. Se instancia principalmente después de registrar el tipo a través de db.registerRepositories() y de especificar el tipo de repositorio registrado correspondiente en los parámetros de db.collection().
Firma
constructor(collection: Collection)Ejemplo
databaseLa instancia de gestión de la base de datos del contexto.
collectionLa instancia de gestión de la colección correspondiente.
modelLa clase de modelo correspondiente.
find()Consulta un conjunto de datos de la base de datos, permitiendo la especificación de condiciones de filtro, ordenación, etc.
Firma
async find(options?: FindOptions): Promise<Model[]>Tipo
Detalles
filter: FilterCondición de consulta utilizada para filtrar los resultados de los datos. En los parámetros de consulta pasados, la key es el nombre del campo a consultar, y el value puede ser el valor a consultar o utilizarse con operadores para otros filtros de datos condicionales.
Para más operadores, consulte Operadores de consulta.
filterByTk: TargetKeyConsulta datos por TargetKey, que es un método conveniente para el parámetro filter. El campo específico para TargetKey se puede configurar en la colección, por defecto es primaryKey.
fields: string[]Columnas de consulta, utilizadas para controlar los resultados de los campos de datos. Después de pasar este parámetro, solo se devolverán los campos especificados.
except: string[]Columnas excluidas, utilizadas para controlar los resultados de los campos de datos. Después de pasar este parámetro, los campos pasados no se mostrarán.
appends: string[]Columnas añadidas, utilizadas para cargar datos asociados. Después de pasar este parámetro, los campos de asociación especificados también se mostrarán.
sort: string[] | stringEspecifica el método de ordenación para los resultados de la consulta. El parámetro es el nombre del campo, que por defecto es orden ascendente (asc). Para orden descendente (desc), añada un símbolo - antes del nombre del campo, por ejemplo, ['-id', 'name'], lo que significa ordenar por id desc, name asc.
limit: numberLimita el número de resultados, igual que limit en SQL.
offset: numberDesplazamiento de la consulta, igual que offset en SQL.
Ejemplo
findOne()Consulta un único dato de la base de datos que cumple con criterios específicos. Equivalente a Model.findOne() en Sequelize.
Firma
async findOne(options?: FindOneOptions): Promise<Model | null>Ejemplo
count()Consulta el número total de entradas de datos que cumplen con criterios específicos de la base de datos. Equivalente a Model.count() en Sequelize.
Firma
count(options?: CountOptions): Promise<number>Tipo
Ejemplo
findAndCount()Consulta un conjunto de datos y el número total de resultados que cumplen con criterios específicos de la base de datos. Equivalente a Model.findAndCountAll() en Sequelize.
Firma
async findAndCount(options?: FindAndCountOptions): Promise<[Model[], number]>Tipo
Detalles
Los parámetros de consulta son los mismos que los de find(). El valor de retorno es un array donde el primer elemento es el resultado de la consulta y el segundo elemento es el recuento total.
create()Inserta un nuevo registro en la colección. Equivalente a Model.create() en Sequelize. Cuando el objeto de datos a crear contiene información sobre campos de relación, los registros de datos de relación correspondientes también se crearán o actualizarán.
Firma
async create<M extends Model>(options: CreateOptions): Promise<M>Ejemplo
createMany()Inserta múltiples registros nuevos en la colección. Equivalente a llamar al método create() varias veces.
Firma
createMany(options: CreateManyOptions): Promise<Model[]>Tipo
Detalles
records: Un array de objetos de datos para los registros a crear.transaction: Objeto de transacción. Si no se pasa ningún parámetro de transacción, el método creará automáticamente una transacción interna.Ejemplo
update()Actualiza datos en la colección. Equivalente a Model.update() en Sequelize. Cuando el objeto de datos a actualizar contiene información sobre campos de relación, los registros de datos de relación correspondientes también se crearán o actualizarán.
Firma
async update<M extends Model>(options: UpdateOptions): Promise<M>Ejemplo
destroy()Elimina datos de la colección. Equivalente a Model.destroy() en Sequelize.
Firma
async destroy(options?: TargetKey | TargetKey[] | DestroyOptions): Promise<number>Tipo
Detalles
filter: Especifica las condiciones de filtro para los registros a eliminar. Para un uso detallado de Filter, consulte el método find().filterByTk: Especifica las condiciones de filtro para los registros a eliminar por TargetKey.truncate: Si se deben truncar los datos de la colección, efectivo cuando no se pasa ningún parámetro filter o filterByTk.transaction: Objeto de transacción. Si no se pasa ningún parámetro de transacción, el método creará automáticamente una transacción interna.