logologo
Start
Handbuch
Entwickler
Plugins
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Start
Handbuch
Entwickler
Plugins
API
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();