logologo
Start
Handbuch
Entwicklung
Plugins
API
Startseite
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Start
Handbuch
Entwicklung
Plugins
API
Startseite
logologo
API-Überblick

@nocobase/auth

AuthManager
Auth
BaseAuth

@nocobase/cache

CacheManager
Cache

@nocobase/cli

NocoBase CLI
Globale Umgebungsvariablen

@nocobase/client

Anwendung
Plugin

@nocobase/database

Sammlung
Feld

interfaces

BaseInterface
Filter-Operatoren

RelationRepository

BelongsToManyRepository
belongs-to-repository
HasManyRepository
HasOneRepository
Repository

shared

create-options
destroy-options
find-one
find-options
transaction
update-options

@nocobase/data-source-manager

DataSourceManager
Datenquelle (abstrakt)
ICollectionManager
ICollection
IField
IModel
IRepository

@nocobase/flow-engine

DataSourceManager
FlowContext
FlowEngine
FlowModel
Workflow-Ressource

@nocobase/logger

Logger

@nocobase/server

AppCommand
Anwendung
AuditManager
Kontext
Migration
Plugin

@nocobase/sdk

Auth
Speicher
Previous Page@nocobase/database
Next PageFeld
KI-Übersetzungshinweis

Diese Dokumentation wurde automatisch von KI übersetzt.

#Sammlung

#Überblick

Eine Sammlung (Collection) wird verwendet, um Datenmodelle im System zu definieren, einschließlich Informationen wie Modellnamen, Feldern, Indizes und Verknüpfungen. Sie wird in der Regel über die collection-Methode einer Database-Instanz als Proxy-Einstiegspunkt aufgerufen.

const { Database } = require('@nocobase/database')

// Eine Datenbankinstanz erstellen
const db = new Database({...});

// Ein Datenmodell definieren
db.collection({
  name: 'users',
  // Modellfelder definieren
  fields: [
    // Skalares Feld
    {
      name: 'name',
      type: 'string',
    },

    // Verknüpfungsfeld
    {
      name: 'profile',
      type: 'hasOne' // 'hasMany', 'belongsTo', 'belongsToMany'
    }
  ],
});

Weitere Feldtypen finden Sie unter Felder.

#Konstruktor

Signatur

  • constructor(options: CollectionOptions, context: CollectionContext)

Parameter

ParameterTypStandardwertBeschreibung
options.namestring-Bezeichner der Sammlung
options.tableName?string-Name der Datenbanktabelle. Falls nicht angegeben, wird der Wert von options.name verwendet.
options.fields?FieldOptions[]-Felddefinitionen. Details finden Sie unter Feld.
options.model?string | ModelStatic<Model>-Sequelize Model-Typ. Wenn ein string verwendet wird, muss der Modellname zuvor in der Datenbank registriert worden sein.
options.repository?string | RepositoryType-Repository-Typ. Wenn ein string verwendet wird, muss der Repository-Typ zuvor in der Datenbank registriert worden sein.
options.sortable?string | boolean | { name?: string; scopeKey?: string }-Konfiguration für sortierbare Felder. Standardmäßig nicht sortierbar.
options.autoGenId?booleantrueGibt an, ob ein eindeutiger Primärschlüssel automatisch generiert werden soll. Standardmäßig true.
context.databaseDatabase-Die Datenbank im aktuellen Kontext.

Beispiel

Eine Sammlung für Beiträge erstellen:

const posts = new Collection(
  {
    name: 'posts',
    fields: [
      {
        type: 'string',
        name: 'title',
      },
      {
        type: 'double',
        name: 'price',
      },
    ],
  },
  {
    // Bestehende Datenbankinstanz
    database: db,
  },
);

#Instanzmitglieder

#options

Die initialen Konfigurationsparameter für die Sammlung. Entspricht dem options-Parameter des Konstruktors.

#context

Der Kontext, zu dem die aktuelle Sammlung gehört, derzeit hauptsächlich die Datenbankinstanz.

#name

Name der Sammlung.

#db

Die Datenbankinstanz, zu der sie gehört.

#filterTargetKey

Der als Primärschlüssel verwendete Feldname.

#isThrough

Gibt an, ob es sich um eine Zwischensammlung handelt.

#model

Entspricht dem Sequelize Model-Typ.

#repository

Instanz des Daten-Repositorys.

#Methoden zur Feldkonfiguration

#getField()

Ruft das Feldobjekt mit dem entsprechenden Namen ab, das in der Sammlung definiert ist.

Signatur

  • getField(name: string): Field

Parameter

ParameterTypStandardwertBeschreibung
namestring-Feldname

Beispiel

const posts = db.collection({
  name: 'posts',
  fields: [
    {
      type: 'string',
      name: 'title',
    },
  ],
});

const field = posts.getField('title');

#setField()

Setzt ein Feld für die Sammlung.

Signatur

  • setField(name: string, options: FieldOptions): Field

Parameter

ParameterTypStandardwertBeschreibung
namestring-Feldname
optionsFieldOptions-Feldkonfiguration. Details finden Sie unter Feld.

Beispiel

const posts = db.collection({ name: 'posts' });

posts.setField('title', { type: 'string' });

#setFields()

Setzt mehrere Felder für die Sammlung im Stapelbetrieb.

Signatur

  • setFields(fields: FieldOptions[], resetFields = true): Field[]

Parameter

ParameterTypStandardwertBeschreibung
fieldsFieldOptions[]-Feldkonfiguration. Details finden Sie unter Feld.
resetFieldsbooleantrueGibt an, ob bestehende Felder zurückgesetzt werden sollen.

Beispiel

const posts = db.collection({ name: 'posts' });

posts.setFields([
  { type: 'string', name: 'title' },
  { type: 'double', name: 'price' },
]);

#removeField()

Entfernt das Feldobjekt mit dem entsprechenden Namen, das in der Sammlung definiert ist.

Signatur

  • removeField(name: string): void | Field

Parameter

ParameterTypStandardwertBeschreibung
namestring-Feldname

Beispiel

const posts = db.collection({
  name: 'posts',
  fields: [
    {
      type: 'string',
      name: 'title',
    },
  ],
});

posts.removeField('title');

#resetFields()

Setzt die Felder der Sammlung zurück (leert sie).

Signatur

  • resetFields(): void

Beispiel

const posts = db.collection({
  name: 'posts',
  fields: [
    {
      type: 'string',
      name: 'title',
    },
  ],
});

posts.resetFields();

#hasField()

Prüft, ob ein Feldobjekt mit dem entsprechenden Namen in der Sammlung definiert ist.

Signatur

  • hasField(name: string): boolean

Parameter

ParameterTypStandardwertBeschreibung
namestring-Feldname

Beispiel

const posts = db.collection({
  name: 'posts',
  fields: [
    {
      type: 'string',
      name: 'title',
    },
  ],
});

posts.hasField('title'); // true

#findField()

Findet ein Feldobjekt in der Sammlung, das den Kriterien entspricht.

Signatur

  • findField(predicate: (field: Field) => boolean): Field | undefined

Parameter

ParameterTypStandardwertBeschreibung
predicate(field: Field) => boolean-Suchkriterien

Beispiel

const posts = db.collection({
  name: 'posts',
  fields: [
    {
      type: 'string',
      name: 'title',
    },
  ],
});

posts.findField((field) => field.name === 'title');

#forEachField()

Iteriert über die Feldobjekte in der Sammlung.

Signatur

  • forEachField(callback: (field: Field) => void): void

Parameter

ParameterTypStandardwertBeschreibung
callback(field: Field) => void-Callback-Funktion

Beispiel

const posts = db.collection({
  name: 'posts',
  fields: [
    {
      type: 'string',
      name: 'title',
    },
  ],
});

posts.forEachField((field) => console.log(field.name));

#Methoden zur Indexkonfiguration

#addIndex()

Fügt der Sammlung einen Index hinzu.

Signatur

  • addIndex(index: string | string[] | { fields: string[], unique?: boolean,[key: string]: any })

Parameter

ParameterTypStandardwertBeschreibung
indexstring | string[]-Feldname(n) für die Indexkonfiguration.
index{ fields: string[], unique?: boolean, [key: string]: any }-Vollständige Konfiguration.

Beispiel

const posts = db.collection({
  name: 'posts',
  fields: [
    {
      type: 'string',
      name: 'title',
    },
  ],
});

posts.addIndex({
  fields: ['title'],
  unique: true,
});

#removeIndex()

Entfernt einen Index aus der Sammlung.

Signatur

  • removeIndex(fields: string[])

Parameter

ParameterTypStandardwertBeschreibung
fieldsstring[]-Kombination von Feldnamen für den zu entfernenden Index.

Beispiel

const posts = db.collection({
  name: 'posts',
  fields: [
    {
      type: 'string',
      name: 'title',
    },
  ],
  indexes: [
    {
      fields: ['title'],
      unique: true,
    },
  ],
});

posts.removeIndex(['title']);

#Methoden zur Sammlungskonfiguration

#remove()

Löscht die Sammlung.

Signatur

  • remove(): void

Beispiel

const posts = db.collection({
  name: 'posts',
  fields: [
    {
      type: 'string',
      name: 'title',
    },
  ],
});

posts.remove();

#Datenbankoperationsmethoden

#sync()

Synchronisiert die Sammlungsdefinition mit der Datenbank. Zusätzlich zur Standardlogik von Model.sync in Sequelize werden auch Sammlungen verarbeitet, die Verknüpfungsfeldern entsprechen.

Signatur

  • sync(): Promise<void>

Beispiel

const posts = db.collection({
  name: 'posts',
  fields: [
    {
      type: 'string',
      name: 'title',
    },
  ],
});

await posts.sync();

#existsInDb()

Prüft, ob die Sammlung in der Datenbank existiert.

Signatur

  • existsInDb(options?: Transactionable): Promise<boolean>

Parameter

ParameterTypStandardwertBeschreibung
options?.transactionTransaction-Transaktionsinstanz

Beispiel

const posts = db.collection({
  name: 'posts',
  fields: [
    {
      type: 'string',
      name: 'title',
    },
  ],
});

const existed = await posts.existsInDb();

console.log(existed); // false

#removeFromDb()

Signatur

  • removeFromDb(): Promise<void>

Beispiel

const books = db.collection({
  name: 'books',
});

// Die Büchersammlung mit der Datenbank synchronisieren
await db.sync();

// Die Büchersammlung aus der Datenbank entfernen
await books.removeFromDb();