TileJS
TileJS
Database

CRUD

Operações de criação, consulta, atualização e remoção de documentos

CRUD

Após criar uma Collection, você pode começar a inserir, consultar, atualizar e remover documentos.

Todos os métodos são assíncronos e retornam uma Promise.


Documento de exemplo

Nos exemplos desta página será utilizada a seguinte Collection.

database.ts
import { Database, Schema } from "@tilejs/database";

interface Member {
  _id?: string;
  name: string;
  email: string;
  age?: number;
  verified?: boolean;
}

const memberSchema = new Schema<Member>({
  name: {
    type: String,
    required: true,
  },

  email: {
    type: String,
    unique: true,
  },

  age: Number,

  verified: {
    type: Boolean,
    default: false,
  },
});

const connection = new Database();

export const database = Object.assign(connection, {
  members: connection.collection<Member>("members", memberSchema),
});

Inserindo documentos

insertOne()

Insere um único documento.

const member = await database.members.insertOne({
  name: "Israel",
  email: "israel@gmail.com",
  age: 21,
});

console.log(member);

Retorno:

{
  _id: "68526dba05db8ec36dcb33d8",
  name: "Israel",
  email: "israel@gmail.com",
  age: 21,
  verified: false,
  __v: 0,
  createdAt: Date,
  updatedAt: Date
}

Buscando documentos

findOne()

Retorna o primeiro documento encontrado.

const member = await database.members.findOne({
  email: "israel@gmail.com",
});

find()

Retorna todos os documentos que correspondem ao filtro.

const members = await database.members.find({
  verified: true,
});

Também é possível buscar todos os documentos.

const members = await database.members.find();

exists()

Verifica se um documento existe.

const exists = await database.members.exists({
  email: "israel@gmail.com",
});

Retorno:

true

countDocuments()

Conta quantos documentos existem na Collection.

const total = await database.members.countDocuments();

Atualizando documentos

updateOne()

Atualiza o primeiro documento encontrado.

await database.members.updateOne(
  {
    email: "israel@gmail.com",
  },
  {
    verified: true,
  }
);

Também é possível utilizar operadores.

await database.members.updateOne(
  {
    email: "israel@gmail.com",
  },
  {
    $set: {
      verified: true,
    },

    $inc: {
      age: 1,
    },

    $unset: ["note"],
  }
);

Operadores suportados

Prop

Type


Removendo documentos

deleteOne()

Remove o primeiro documento encontrado.

await database.members.deleteOne({
  email: "israel@gmail.com",
});

deleteMany()

Remove vários documentos.

await database.members.deleteMany({
  verified: false,
});

Remover todos.

await database.members.deleteMany();

Paginação

paginate()

Retorna documentos paginados.

const result = await database.members.paginate({
  page: 1,
  limit: 10,
});

Também é possível ordenar.

const result = await database.members.paginate({
  page: 1,
  limit: 10,

  sort: {
    createdAt: "desc",
  },
});

Retorno:

{
  items: [...],
  total: 53,
  page: 1,
  limit: 10,
  pages: 6
}

Descrevendo o Schema

A Collection pode retornar informações do Schema.

console.log(database.members.describeSchema());

Resultado:

{
  fields: {
    _id: {...},
    name: {...},
    email: {...},
    age: {...},
    verified: {...},
    __v: {...}
  },

  timestamps: true,

  collection: undefined
}

Resumo dos métodos

Prop

Type


Próximos passos

Agora você já conhece todas as operações básicas disponíveis no TileJS Database.

Consulte a documentação do Schema para conhecer todas as validações, índices e opções disponíveis para os campos.

On this page