Ten dokument został przetłumaczony przez AI. W przypadku niedokładności, proszę odnieść się do wersji angielskiej
Dla danego obiektu Collection mogą Państwo uzyskać dostęp do jego obiektu Repository, aby wykonywać operacje odczytu i zapisu na kolekcji.
Na obiekcie Repository należy wywołać metody związane z find*, aby wykonać operacje zapytań. Wszystkie metody zapytań obsługują przekazywanie parametru filter do filtrowania danych.
Parametr filter w Repository oferuje również różnorodne operatory do wykonywania bardziej złożonych operacji zapytań.
Więcej szczegółów na temat operatorów znajdą Państwo w Operatorach filtrowania.
Podczas wykonywania operacji zapytania mogą Państwo kontrolować pola wyjściowe za pomocą parametrów fields, except i appends.
fields: Określa pola wyjścioweexcept: Wyklucza pola z wynikuappends: Dołącza powiązane pola do wynikuParametr filter obsługuje filtrowanie według pól powiązanych, na przykład:
Pola powiązane mogą być również zagnieżdżone.
Mogą Państwo sortować wyniki zapytań za pomocą parametru sort.
Mogą Państwo również sortować według pól powiązanych obiektów.
Tworzenie nowych obiektów danych za pośrednictwem Repository.
Podczas tworzenia mogą Państwo jednocześnie tworzyć powiązane obiekty. Podobnie jak w przypadku zapytań, obsługiwane jest również zagnieżdżanie powiązanych obiektów, na przykład:
Jeśli powiązany obiekt już istnieje w bazie danych, mogą Państwo przekazać jego ID, aby ustanowić z nim powiązanie podczas tworzenia.
Po uzyskaniu obiektu danych mogą Państwo bezpośrednio modyfikować jego właściwości na obiekcie danych (Model), a następnie wywołać metodę save, aby zapisać zmiany.
Obiekt danych Model dziedziczy po modelu Sequelize. Więcej informacji na temat operacji na Model znajdą Państwo w Modelu Sequelize.
Mogą Państwo również aktualizować dane za pośrednictwem Repository:
Podczas aktualizacji mogą Państwo kontrolować, które pola są aktualizowane za pomocą parametrów whitelist i blacklist, na przykład:
Podczas aktualizacji mogą Państwo ustawiać powiązane obiekty, na przykład:
Mogą Państwo wywołać metodę destroy() w Repository, aby wykonać operację usuwania. Podczas usuwania należy określić kryteria filtrowania:
Zazwyczaj nie jest wywoływany bezpośrednio przez deweloperów. Jest on głównie instancjonowany po zarejestrowaniu typu za pomocą db.registerRepositories() i określeniu odpowiedniego zarejestrowanego typu repozytorium w parametrach db.collection().
Sygnatura
constructor(collection: Collection)Przykład
databaseInstancja zarządzania bazą danych kontekstu.
collectionOdpowiednia instancja zarządzania kolekcją.
modelOdpowiednia klasa modelu.
find()Pobiera zestaw danych z bazy danych, umożliwiając określenie warunków filtrowania, sortowania itp.
Sygnatura
async find(options?: FindOptions): Promise<Model[]>Typ
Szczegóły
filter: FilterWarunek zapytania używany do filtrowania wyników danych. W przekazanych parametrach zapytania, key to nazwa pola do zapytania, a value może być wartością do zapytania lub użyte z operatorami do filtrowania danych według innych warunków.
Więcej operatorów znajdą Państwo w Operatorach zapytań.
filterByTk: TargetKeyPobiera dane za pomocą TargetKey, co jest wygodną metodą dla parametru filter. Konkretne pole dla TargetKey można skonfigurować w Collection, domyślnie jest to primaryKey.
fields: string[]Kolumny zapytania, używane do kontrolowania wyników pól danych. Po przekazaniu tego parametru, zwrócone zostaną tylko określone pola.
except: string[]Wykluczone kolumny, używane do kontrolowania wyników pól danych. Po przekazaniu tego parametru, przekazane pola nie zostaną zwrócone.
appends: string[]Dołączone kolumny, używane do ładowania powiązanych danych. Po przekazaniu tego parametru, określone pola powiązane również zostaną zwrócone.
sort: string[] | stringOkreśla metodę sortowania wyników zapytania. Parametr to nazwa pola, która domyślnie sortuje w kolejności rosnącej (asc). Dla kolejności malejącej (desc) należy dodać symbol - przed nazwą pola, np. ['-id', 'name'], co oznacza sortowanie według id malejąco, name rosnąco.
limit: numberOgranicza liczbę wyników, tak samo jak limit w SQL.
offset: numberPrzesunięcie zapytania, tak samo jak offset w SQL.
Przykład
findOne()Pobiera pojedynczy rekord danych z bazy danych spełniający określone kryteria. Odpowiednik Model.findOne() w Sequelize.
Sygnatura
async findOne(options?: FindOneOptions): Promise<Model | null>Przykład
count()Pobiera całkowitą liczbę rekordów danych spełniających określone kryteria z bazy danych. Odpowiednik Model.count() w Sequelize.
Sygnatura
count(options?: CountOptions): Promise<number>Typ
Przykład
findAndCount()Pobiera zestaw danych i całkowitą liczbę wyników spełniających określone kryteria z bazy danych. Odpowiednik Model.findAndCountAll() w Sequelize.
Sygnatura
async findAndCount(options?: FindAndCountOptions): Promise<[Model[], number]>Typ
Szczegóły
Parametry zapytania są takie same jak w find(). Wartość zwracana to tablica, gdzie pierwszy element to wynik zapytania, a drugi to całkowita liczba wyników.
create()Wstawia nowy rekord do kolekcji. Odpowiednik Model.create() w Sequelize. Gdy tworzony obiekt danych zawiera informacje o polach relacji, odpowiednie rekordy danych relacji zostaną również utworzone lub zaktualizowane.
Sygnatura
async create<M extends Model>(options: CreateOptions): Promise<M>Przykład
createMany()Wstawia wiele nowych rekordów do kolekcji. Odpowiednik wielokrotnego wywołania metody create().
Sygnatura
createMany(options: CreateManyOptions): Promise<Model[]>Typ
Szczegóły
records: Tablica obiektów danych dla rekordów do utworzenia.transaction: Obiekt transakcji. Jeśli parametr transakcji nie zostanie przekazany, metoda automatycznie utworzy wewnętrzną transakcję.Przykład
update()Aktualizuje dane w kolekcji. Odpowiednik Model.update() w Sequelize. Gdy aktualizowany obiekt danych zawiera informacje o polach relacji, odpowiednie rekordy danych relacji zostaną również utworzone lub zaktualizowane.
Sygnatura
async update<M extends Model>(options: UpdateOptions): Promise<M>Przykład
destroy()Usuwa dane z kolekcji. Odpowiednik Model.destroy() w Sequelize.
Sygnatura
async destory(options?: TargetKey | TargetKey[] | DestoryOptions): Promise<number>Typ
Szczegóły
filter: Określa warunki filtrowania dla rekordów do usunięcia. Szczegółowe użycie filtru znajdą Państwo w metodzie find().filterByTk: Określa warunki filtrowania dla rekordów do usunięcia za pomocą TargetKey.truncate: Czy wyczyścić dane kolekcji, skuteczne, gdy nie przekazano parametru filter ani filterByTk.transaction: Obiekt transakcji. Jeśli parametr transakcji nie zostanie przekazany, metoda automatycznie utworzy wewnętrzną transakcję.