Cette documentation a été traduite automatiquement par IA.
Sur un objet Collection donné, vous pouvez obtenir son objet Repository pour effectuer des opérations de lecture et d'écriture sur la collection.
Sur l'objet Repository, vous pouvez appeler les méthodes find* pour effectuer des opérations de requête. Toutes ces méthodes prennent en charge le paramètre filter pour filtrer les données.
Le paramètre filter du Repository offre également une variété d'opérateurs pour des requêtes plus complexes.
Pour plus de détails sur les opérateurs, veuillez consulter Opérateurs de filtre.
Lors d'une opération de requête, vous pouvez contrôler les champs de sortie à l'aide des paramètres fields, except et appends.
fields: Spécifie les champs à inclure dans la sortie.except: Exclut les champs de la sortie.appends: Ajoute les champs associés à la sortie.Le paramètre filter permet de filtrer par champs associés, par exemple :
Les champs associés peuvent également être imbriqués.
Vous pouvez trier les résultats de la requête à l'aide du paramètre sort.
Vous pouvez également trier par les champs des objets associés.
Créez de nouveaux objets de données via le Repository.
Lors de la création, vous pouvez également créer des objets associés simultanément. Similaire aux requêtes, l'utilisation imbriquée d'objets associés est également prise en charge, par exemple :
Si l'objet associé existe déjà dans la base de données, vous pouvez passer son ID pour établir une association avec lui lors de la création.
Après avoir récupéré un objet de données, vous pouvez directement modifier ses propriétés sur l'objet de données (Model), puis appeler la méthode save pour enregistrer les modifications.
L'objet de données Model hérite du modèle Sequelize. Pour les opérations sur le Model, veuillez consulter Sequelize Model.
Vous pouvez également mettre à jour les données via le Repository :
Lors de la mise à jour, vous pouvez contrôler les champs à mettre à jour à l'aide des paramètres whitelist et blacklist, par exemple :
Lors de la mise à jour, vous pouvez définir des objets associés, par exemple :
Vous pouvez appeler la méthode destroy() du Repository pour effectuer une opération de suppression. Vous devez spécifier des critères de filtre lors de la suppression :
Généralement, il n'est pas appelé directement par les développeurs. Il est principalement instancié après l'enregistrement du type via db.registerRepositories() et la spécification du type de dépôt enregistré correspondant dans les paramètres de db.collection().
Signature
constructor(collection: Collection)Exemple
databaseL'instance de gestion de base de données du contexte.
collectionL'instance de gestion de collection correspondante.
modelLa classe de modèle correspondante.
find()Interroge une collection de données dans la base de données, permettant de spécifier des conditions de filtre, le tri, etc.
Signature
async find(options?: FindOptions): Promise<Model[]>Type
Détails
filter: FilterCondition de requête utilisée pour filtrer les résultats. Dans les paramètres de requête passés, la key est le nom du champ à interroger, et la value peut être la valeur à rechercher ou être utilisée avec des opérateurs pour d'autres filtrages conditionnels.
Pour plus d'opérateurs, veuillez consulter Opérateurs de requête.
filterByTk: TargetKeyInterroge les données par TargetKey, une méthode pratique pour le paramètre filter. Le champ spécifique pour TargetKey peut être configuré dans la Collection, par défaut il s'agit de la primaryKey.
fields: string[]Colonnes de requête, utilisées pour contrôler les champs de données résultants. Après avoir passé ce paramètre, seuls les champs spécifiés seront renvoyés.
except: string[]Colonnes exclues, utilisées pour contrôler les champs de données résultants. Après avoir passé ce paramètre, les champs spécifiés ne seront pas inclus dans la sortie.
appends: string[]Colonnes à ajouter, utilisées pour charger les données associées. Après avoir passé ce paramètre, les champs associés spécifiés seront également inclus dans la sortie.
sort: string[] | stringSpécifie la méthode de tri des résultats de la requête. Le paramètre est le nom du champ, qui est par défaut trié par ordre croissant (asc). Pour un tri par ordre décroissant (desc), ajoutez un symbole - devant le nom du champ, par exemple : ['-id', 'name'], ce qui signifie trier par id desc, name asc.
limit: numberLimite le nombre de résultats, équivalent à limit en SQL.
offset: numberDécalage de la requête, équivalent à offset en SQL.
Exemple
findOne()Interroge une seule donnée de la base de données qui correspond à des critères spécifiques. Équivalent à Model.findOne() dans Sequelize.
Signature
async findOne(options?: FindOneOptions): Promise<Model | null>Exemple
count()Interroge le nombre total d'enregistrements de données qui correspondent à des critères spécifiques dans la base de données. Équivalent à Model.count() dans Sequelize.
Signature
count(options?: CountOptions): Promise<number>Type
Exemple
findAndCount()Interroge un ensemble de données et le nombre total de résultats qui correspondent à des critères spécifiques dans la base de données. Équivalent à Model.findAndCountAll() dans Sequelize.
Signature
async findAndCount(options?: FindAndCountOptions): Promise<[Model[], number]>Type
Détails
Les paramètres de requête sont les mêmes que pour find(). La valeur de retour est un tableau dont le premier élément est le résultat de la requête et le second est le nombre total de résultats.
create()Insère un nouvel enregistrement dans la collection. Équivalent à Model.create() dans Sequelize. Lorsque l'objet de données à créer contient des informations sur les champs de relation, les enregistrements de données de relation correspondants seront également créés ou mis à jour.
Signature
async create<M extends Model>(options: CreateOptions): Promise<M>Exemple
createMany()Insère plusieurs nouveaux enregistrements dans la collection. Équivalent à appeler la méthode create() plusieurs fois.
Signature
createMany(options: CreateManyOptions): Promise<Model[]>Type
Détails
records : Un tableau d'objets de données pour les enregistrements à créer.transaction : Objet de transaction. Si aucun paramètre de transaction n'est passé, cette méthode créera automatiquement une transaction interne.Exemple
update()Met à jour les données dans la collection. Équivalent à Model.update() dans Sequelize. Lorsque l'objet de données à mettre à jour contient des informations sur les champs de relation, les enregistrements de données de relation correspondants seront également créés ou mis à jour.
Signature
async update<M extends Model>(options: UpdateOptions): Promise<M>Exemple
destroy()Supprime des données de la collection. Équivalent à Model.destroy() dans Sequelize.
Signature
async destroy(options?: TargetKey | TargetKey[] | DestroyOptions): Promise<number>Type
Détails
filter : Spécifie les conditions de filtre pour les enregistrements à supprimer. Pour une utilisation détaillée de Filter, veuillez consulter la méthode find().filterByTk : Spécifie les conditions de filtre pour les enregistrements à supprimer par TargetKey.truncate : Indique s'il faut tronquer les données de la table, ce qui est effectif si aucun paramètre filter ou filterByTk n'est passé.transaction : Objet de transaction. Si aucun paramètre de transaction n'est passé, cette méthode créera automatiquement une transaction interne.