Detta dokument har översatts av AI. För eventuella felaktigheter, se den engelska versionen
Hanteringsklass för samlingsfält (abstrakt klass). Det är också basklassen för alla fälttyper. Alla andra fälttyper implementeras genom att ärva denna klass.
För hur ni anpassar fält, se [Utöka fälttyper]
Den anropas vanligtvis inte direkt av utvecklare, utan främst via metoden db.collection({ fields: [] }) som en proxy-ingång.
När ni utökar ett fält implementeras det främst genom att ärva den abstrakta klassen Field och sedan registrera den i Database-instansen.
Signatur
constructor(options: FieldOptions, context: FieldContext)Parametrar
| Parameter | Typ | Standardvärde | Beskrivning |
|---|---|---|---|
options | FieldOptions | - | Fältkonfigurationsobjekt |
options.name | string | - | Fältnamn |
options.type | string | - | Fälttyp, motsvarande namnet på den fälttyp som är registrerad i databasen |
context | FieldContext | - | Fältkontextobjekt |
context.database | Database | - | Databasinstans |
context.collection | Collection | - | Samlingsinstans |
nameFältnamn.
typeFälttyp.
dataTypeFältets databaslagringstyp.
optionsFältets initialiseringskonfigurationsparametrar.
contextFältets kontextobjekt.
on()En genvägsmetod för definition baserad på samlingshändelser. Motsvarar db.on(this.collection.name + '.' + eventName, listener).
Det är vanligtvis inte nödvändigt att åsidosätta denna metod vid ärvning.
Signatur
on(eventName: string, listener: (...args: any[]) => void)Parametrar
| Parameter | Typ | Standardvärde | Beskrivning |
|---|---|---|---|
eventName | string | - | Händelsenamn |
listener | (...args: any[]) => void | - | Händelselyssnare |
off()En genvägsmetod för borttagning baserad på samlingshändelser. Motsvarar db.off(this.collection.name + '.' + eventName, listener).
Det är vanligtvis inte nödvändigt att åsidosätta denna metod vid ärvning.
Signatur
off(eventName: string, listener: (...args: any[]) => void)Parametrar
| Parameter | Typ | Standardvärde | Beskrivning |
|---|---|---|---|
eventName | string | - | Händelsenamn |
listener | (...args: any[]) => void | - | Händelselyssnare |
bind()Innehållet som ska köras när ett fält läggs till i en samling. Det används vanligtvis för att lägga till samlingshändelselyssnare och annan hantering.
Vid ärvning måste ni först anropa motsvarande super.bind()-metod.
Signatur
bind()unbind()Innehållet som ska köras när ett fält tas bort från en samling. Det används vanligtvis för att ta bort samlingshändelselyssnare och annan hantering.
Vid ärvning måste ni först anropa motsvarande super.unbind()-metod.
Signatur
unbind()get()Hämtar värdet för ett fälts konfigurationsobjekt.
Signatur
get(key: string): anyParametrar
| Parameter | Typ | Standardvärde | Beskrivning |
|---|---|---|---|
key | string | - | Namn på konfigurationsobjekt |
Exempel
merge()Slår samman värdena för ett fälts konfigurationsobjekt.
Signatur
merge(options: { [key: string]: any }): voidParametrar
| Parameter | Typ | Standardvärde | Beskrivning |
|---|---|---|---|
options | { [key: string]: any } | - | Konfigurationsobjektet som ska slås samman |
Exempel
remove()Tar bort fältet från samlingen (endast från minnet).
Exempel
removeFromDb()Tar bort fältet från databasen.
Signatur
removeFromDb(options?: Transactionable): Promise<void>Parametrar
| Parameter | Typ | Standardvärde | Beskrivning |
|---|---|---|---|
options.transaction? | Transaction | - | Transaktionsinstans |
existsInDb()Avgör om fältet finns i databasen.
Signatur
existsInDb(options?: Transactionable): Promise<boolean>Parametrar
| Parameter | Typ | Standardvärde | Beskrivning |
|---|---|---|---|
options.transaction? | Transaction | - | Transaktionsinstans |
NocoBase har ett antal inbyggda, vanliga fälttyper. Ni kan direkt använda det motsvarande typnamnet för att specificera typen när ni definierar fält för en samling. Olika fälttyper har olika parameterkonfigurationer; se listan nedan för mer information.
Alla konfigurationsobjekt för fälttyper, förutom de som presenteras nedan, kommer att skickas vidare till Sequelize. Därför kan alla fältkonfigurationsobjekt som stöds av Sequelize användas här (som allowNull, defaultValue, etc.).
Dessutom löser server-sidans fälttyper främst problem med databaslagring och vissa algoritmer, och är i princip orelaterade till de frontend-fälttyper och komponenter som används för visning. För frontend-fälttyper, se motsvarande instruktioner i handledningen.
'boolean'Logiskt värde (boolean).
Exempel
'integer'Heltalstyp (32-bitars).
Exempel
'bigInt'Stort heltal (64-bitars).
Exempel
'double'Dubbelprecision flyttalstyp (64-bitars).
Exempel
'real'Realtalstyp (endast för PG).
'decimal'Decimaltalstyp.
'string'Strängtyp. Motsvarar VARCHAR-typen i de flesta databaser.
Exempel
'text'Texttyp. Motsvarar TEXT-typen i de flesta databaser.
Exempel
'password'Lösenordstyp (NocoBase-tillägg). Krypterar lösenord baserat på scrypt-metoden i Node.js inbyggda crypto-paket.
Exempel
Parametrar
| Parameter | Typ | Standardvärde | Beskrivning |
|---|---|---|---|
length | number | 64 | Teckenlängd |
randomBytesSize | number | 8 | Slumpmässig bytestorlek |
'date'Datumtyp.
'time'Tidstyp.
'array'Arraytyp (endast för PG).
'json'JSON-typ.
'jsonb'JSONB-typ (endast för PG, andra kommer att vara kompatibla som 'json'-typ).
'uuid'UUID-typ.
'uid'UID-typ (NocoBase-tillägg). Kort slumpmässig strängidentifierartyp.
'formula'Formeltyp (NocoBase-tillägg). Möjliggör konfigurering av matematiska formelberäkningar baserade på mathjs. Formeln kan referera till värden från andra kolumner i samma post för beräkning.
Exempel
'radio'Radioknappstyp (NocoBase-tillägg). Högst en rad i hela samlingen kan ha detta fälts värde som true; alla andra kommer att vara false eller null.
Exempel
Det finns bara en användare markerad som root i hela systemet. När root-värdet för någon annan användare ändras till true, kommer alla andra poster där root är true att ändras till false:
'sort'Sorteringstyp (NocoBase-tillägg). Sorterar baserat på heltal, genererar automatiskt ett nytt sekvensnummer för nya poster och omordnar sekvensnumren när data flyttas.
Om en samling definierar alternativet sortable, kommer ett motsvarande fält också att genereras automatiskt.
Exempel
Inlägg kan sorteras baserat på vilken användare de tillhör:
'virtual'Virtuell typ. Lagrar inte data fysiskt, används endast för speciella getter/setter-definitioner.
'belongsTo'Många-till-en-associationstyp. Främmande nyckel lagras i den egna tabellen, i motsats till hasOne/hasMany.
Exempel
Varje inlägg tillhör en författare:
'hasOne'En-till-en-associationstyp. Främmande nyckel lagras i den associerade samlingen, i motsats till belongsTo.
Exempel
Varje användare har en profil:
'hasMany'En-till-många-associationstyp. Främmande nyckel lagras i den associerade samlingen, i motsats till belongsTo.
Exempel
Varje användare kan ha flera inlägg:
'belongsToMany'Många-till-många-associationstyp. Använder en mellansamling för att lagra främmande nycklar för båda sidor. Om en befintlig samling inte specificeras som mellansamling, kommer en mellansamling att skapas automatiskt.
Exempel
Varje inlägg kan ha flera taggar, och varje tagg kan läggas till i flera inlägg: