Dit document is vertaald door AI. Voor onnauwkeurigheden, raadpleeg de Engelse versie
Binnen een gegeven collectie-object kunt u het bijbehorende Repository-object opvragen om lees- en schrijfbewerkingen op de datatabel uit te voeren.
Op het Repository-object roept u de find*-gerelateerde methoden aan om query-bewerkingen uit te voeren. Alle query-methoden ondersteunen het doorgeven van een filter-parameter om gegevens te filteren.
De filter-parameter in Repository biedt ook diverse operatoren om complexere query-bewerkingen uit te voeren.
Voor meer gedetailleerde informatie over operatoren raadpleegt u Filter-operatoren.
Bij het uitvoeren van een query-bewerking kunt u de uitvoervelden beheren via de parameters fields, except en appends.
fields: Specificeer uitvoerveldenexcept: Sluit uitvoervelden uitappends: Voeg gerelateerde velden toe aan de uitvoerDe filter-parameter ondersteunt het filteren op gerelateerde velden, bijvoorbeeld:
Gerelateerde velden kunnen ook genest worden.
U kunt de query-resultaten sorteren met behulp van de sort-parameter.
U kunt ook sorteren op de velden van gerelateerde objecten.
Maak nieuwe gegevens-objecten aan via de Repository.
Bij het aanmaken kunt u ook gelijktijdig gerelateerde objecten aanmaken. Net als bij query's wordt ook genest gebruik van gerelateerde objecten ondersteund, bijvoorbeeld:
Als het gerelateerde object al in de database bestaat, kunt u de ID ervan doorgeven om een relatie ermee tot stand te brengen tijdens het aanmaken.
Nadat u een gegevens-object hebt verkregen, kunt u de eigenschappen ervan direct wijzigen op het gegevens-object (Model) en vervolgens de save-methode aanroepen om de wijzigingen op te slaan.
Het gegevens-object Model erft van het Sequelize Model. Voor bewerkingen op het Model raadpleegt u Sequelize Model.
U kunt ook gegevens bijwerken via de Repository:
Bij het bijwerken kunt u bepalen welke velden worden bijgewerkt met behulp van de parameters whitelist en blacklist, bijvoorbeeld:
Bij het bijwerken kunt u gerelateerde objecten instellen, bijvoorbeeld:
U kunt de destroy()-methode in de Repository aanroepen om een verwijderbewerking uit te voeren. U moet filtercriteria opgeven bij het verwijderen:
Meestal wordt deze niet direct door ontwikkelaars aangeroepen. Het wordt voornamelijk geïnstantieerd na het registreren van het type via db.registerRepositories() en het specificeren van het overeenkomstige geregistreerde repository-type in de parameters van db.collection().
Signatuur
constructor(collection: Collection)Voorbeeld
databaseDe databasebeheer-instantie van de context.
collectionDe overeenkomstige collectiebeheer-instantie.
modelDe overeenkomstige modelklasse.
find()Haalt een dataset op uit de database, waarbij filtercondities, sortering, enz. kunnen worden gespecificeerd.
Signatuur
async find(options?: FindOptions): Promise<Model[]>Type
Details
filter: FilterQuery-conditie die wordt gebruikt om gegevensresultaten te filteren. In de doorgegeven query-parameters is de key de veldnaam om op te zoeken, en de value kan de te zoeken waarde zijn of worden gebruikt met operatoren voor andere voorwaardelijke gegevensfiltering.
Voor meer operatoren raadpleegt u Query-operatoren.
filterByTk: TargetKeyHaalt gegevens op via TargetKey, wat een handige methode is voor de filter-parameter. Het specifieke veld voor TargetKey kan worden geconfigureerd in de collectie, standaard is dit primaryKey.
fields: string[]Query-kolommen, gebruikt om de gegevensveldresultaten te beheren. Na het doorgeven van deze parameter worden alleen de gespecificeerde velden geretourneerd.
except: string[]Uitgesloten kolommen, gebruikt om de gegevensveldresultaten te beheren. Na het doorgeven van deze parameter worden de doorgegeven velden niet uitgevoerd.
appends: string[]Toegevoegde kolommen, gebruikt om gerelateerde gegevens te laden. Na het doorgeven van deze parameter worden de gespecificeerde relatievelden ook uitgevoerd.
sort: string[] | stringSpecificeert de sorteermethode voor de query-resultaten. De parameter is de veldnaam, die standaard in oplopende (asc) volgorde wordt gesorteerd. Voor aflopende (desc) volgorde voegt u een - symbool toe vóór de veldnaam, bijv. ['-id', 'name'], wat betekent sorteren op id desc, name asc.
limit: numberBeperkt het aantal resultaten, hetzelfde als limit in SQL.
offset: numberQuery-offset, hetzelfde als offset in SQL.
Voorbeeld
findOne()Haalt één enkel gegevensitem op uit de database dat voldoet aan specifieke criteria. Equivalent aan Model.findOne() in Sequelize.
Signatuur
async findOne(options?: FindOneOptions): Promise<Model | null>Voorbeeld
count()Haalt het totale aantal gegevensitems op uit de database dat voldoet aan specifieke criteria. Equivalent aan Model.count() in Sequelize.
Signatuur
count(options?: CountOptions): Promise<number>Type
Voorbeeld
findAndCount()Haalt een dataset en het totale aantal resultaten op uit de database dat voldoet aan specifieke criteria. Equivalent aan Model.findAndCountAll() in Sequelize.
Signatuur
async findAndCount(options?: FindAndCountOptions): Promise<[Model[], number]>Type
Details
De query-parameters zijn hetzelfde als find(). De retourwaarde is een array waarbij het eerste element het query-resultaat is en het tweede element het totale aantal.
create()Voegt een nieuw record toe aan de collectie. Equivalent aan Model.create() in Sequelize. Wanneer het aan te maken gegevens-object informatie over relatievelden bevat, worden de overeenkomstige relatiegegevensrecords ook aangemaakt of bijgewerkt.
Signatuur
async create<M extends Model>(options: CreateOptions): Promise<M>Voorbeeld
createMany()Voegt meerdere nieuwe records toe aan de collectie. Equivalent aan het meerdere keren aanroepen van de create()-methode.
Signatuur
createMany(options: CreateManyOptions): Promise<Model[]>Type
Details
records: Een array van gegevens-objecten voor de aan te maken records.transaction: Transactie-object. Als er geen transactie-parameter wordt doorgegeven, maakt de methode automatisch een interne transactie aan.Voorbeeld
update()Werkt gegevens in de collectie bij. Equivalent aan Model.update() in Sequelize. Wanneer het bij te werken gegevens-object informatie over relatievelden bevat, worden de overeenkomstige relatiegegevensrecords ook aangemaakt of bijgewerkt.
Signatuur
async update<M extends Model>(options: UpdateOptions): Promise<M>Voorbeeld
destroy()Verwijdert gegevens uit de collectie. Equivalent aan Model.destroy() in Sequelize.
Signatuur
async destory(options?: TargetKey | TargetKey[] | DestoryOptions): Promise<number>Type
Details
filter: Specificeert de filtercondities voor de te verwijderen records. Voor gedetailleerd gebruik van Filter, raadpleegt u de find()-methode.filterByTk: Specificeert de filtercondities voor de te verwijderen records op basis van TargetKey.truncate: Of de collectiegegevens moeten worden geleegd, effectief wanneer er geen filter of filterByTk-parameter wordt doorgegeven.transaction: Transactie-object. Als er geen transactie-parameter wordt doorgegeven, maakt de methode automatisch een interne transactie aan.