tibi-docs/docs/md/server-javascript-kontext/packages/db.md
2023-06-04 09:34:11 +00:00

2.9 KiB

db

Das Database (Db) Paket stellt Methoden bereit, um Operationen auf einer Datenbank auszuführen. Es umfasst die folgenden Hauptmethoden:

  • find(collection: string, query: object, options?: object): Diese Methode ermöglicht das Suchen von Dokumenten in einer bestimmten Sammlung basierend auf einer Query. Optional können Sie auch Optionen wie Limit, Skip, Sort, usw. angeben.

  • findOne(collection: string, query: object, options?: object): Ähnlich wie die find Methode, aber sie gibt nur das erste Dokument zurück, das die Query erfüllt.

  • insert(collection: string, document: object: Diese Methode fügt ein neues Dokument in eine bestimmte Sammlung ein.

  • update(collection: string, query: object, update: object, options?: object): Diese Methode aktualisiert Dokumente in einer bestimmten Sammlung, die eine Query erfüllt. Sie können auch optionale Parameter wie upsert und multi verwenden.

  • remove(collection: string, query: object, options?: object): Diese Methode entfernt Dokumente aus einer bestimmten Sammlung, die eine Query erfüllen. Optionale Parameter wie justOne können verwendet werden.

  • count(collection: string, query: object): Diese Methode gibt die Anzahl der Dokumente in einer bestimmten Sammlung zurück, die eine Query erfüllen.

interface DbPackage {
    /**
     * read results from a collection
     *
     * @param colName collection name
     * @param options options map
     */
    find(colName: string, options?: DbReadOptions): CollectionDocument[]

    /**
     * read count of documents for filter from a collection
     *
     * @param colName collection name
     * @param options options map (only filter is valid)
     */
    count(colName: string, options?: DbReadOptions): number

    /**
     * create a document in a collection
     *
     * @param colName collection name
     * @param data data map
     */
    create(colName: string, data: CollectionDocument): CollectionDocument

    /**
     * update a document in a collection
     *
     * @param colName collection name
     * @param id id of entry
     * @param data new/changed data
     */
    update(colName: string, id: string, data: CollectionDocument): CollectionDocument

    /**
     * deletes one document by id from collection
     *
     * @param colName collection name
     * @param id id of entry
     */
    delete(colName: string, id: string): { message: "ok" }

    /**
     * deletes documents by filter from collection
     *
     * @param colName collection name
     * @param options options map, only filter valid
     */
    deleteMany(colName: string, options?: DbReadOptions): { message: "ok"; removed: number }
}

interface DbReadOptions {
    filter?: {
        [key: string]: any
    }
    selector?: {
        [key: string]: any
    }
    projection?: string
    offset?: number
    limit?: number
    sort?: string[]
    pipelineMod?: (pipe: { [key: string]: any }[]) => { [key: string]: any }[]
}