logologo
Começar
Manual
Desenvolvimento
Plugins
API
Início
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Começar
Manual
Desenvolvimento
Plugins
API
Início
logologo
Visão Geral da API

@nocobase/auth

AuthManager
Autenticação
BaseAuth

@nocobase/cache

CacheManager
Cache

@nocobase/cli

NocoBase CLI
Variáveis de Ambiente Globais

@nocobase/client

Aplicação
Plugin

@nocobase/database

Coleção
Campo

interfaces

BaseInterface
Operadores de Filtro

RelationRepository

BelongsToManyRepository
belongs-to-repository
HasManyRepository
HasOneRepository
Repositório

shared

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

@nocobase/data-source-manager

DataSourceManager
DataSource (abstrata)
ICollectionManager
ICollection
IField
IModel
IRepository

@nocobase/flow-engine

Gerenciador de Fonte de Dados
Contexto do Fluxo
FlowEngine
FlowModel
Recurso de Fluxo

@nocobase/logger

Logger

@nocobase/server

AppCommand
Aplicação
AuditManager
Contexto
Migração
Plugin

@nocobase/sdk

Auth
Storage
Previous PageBaseInterface
Next PageRelationRepository
Aviso de tradução por IA

Esta documentação foi traduzida automaticamente por IA.

#Operadores de Filtro

Utilizados no parâmetro filter das APIs de um Repository, como find, findOne, findAndCount e count:

const repository = db.getRepository('books');

repository.find({
  filter: {
    title: {
      $eq: '春秋',
    },
  },
});

Para suportar a serialização JSON, o NocoBase identifica os operadores de consulta com uma string prefixada por $.

Além disso, o NocoBase oferece uma API para estender operadores. Para mais detalhes, consulte db.registerOperators().

#Operadores Gerais

#$eq

Verifica se o valor do campo é igual ao valor especificado. Equivalente ao = do SQL.

Exemplo

repository.find({
  filter: {
    title: {
      $eq: '春秋',
    },
  },
});

Equivalente a title: '春秋'.

#$ne

Verifica se o valor do campo é diferente do valor especificado. Equivalente ao != do SQL.

Exemplo

repository.find({
  filter: {
    title: {
      $ne: '春秋',
    },
  },
});

#$is

Verifica se o valor do campo é o valor especificado. Equivalente ao IS do SQL.

Exemplo

repository.find({
  filter: {
    title: {
      $is: null,
    },
  },
});

#$not

Verifica se o valor do campo não é o valor especificado. Equivalente ao IS NOT do SQL.

Exemplo

repository.find({
  filter: {
    title: {
      $not: null,
    },
  },
});

#$col

Verifica se o valor do campo é igual ao valor de outro campo. Equivalente ao = do SQL.

Exemplo

repository.find({
  filter: {
    title: {
      $col: 'name',
    },
  },
});

#$in

Verifica se o valor do campo está no array especificado. Equivalente ao IN do SQL.

Exemplo

repository.find({
  filter: {
    title: {
      $in: ['春秋', '战国'],
    },
  },
});

#$notIn

Verifica se o valor do campo não está no array especificado. Equivalente ao NOT IN do SQL.

Exemplo

repository.find({
  filter: {
    title: {
      $notIn: ['春秋', '战国'],
    },
  },
});

#$empty

Verifica se um campo geral está vazio. Para um campo de string, verifica se é uma string vazia. Para um campo de array, verifica se é um array vazio.

Exemplo

repository.find({
  filter: {
    title: {
      $empty: true,
    },
  },
});

#$notEmpty

Verifica se um campo geral não está vazio. Para um campo de string, verifica se não é uma string vazia. Para um campo de array, verifica se não é um array vazio.

Exemplo

repository.find({
  filter: {
    title: {
      $notEmpty: true,
    },
  },
});

#Operadores Lógicos

#$and

AND lógico. Equivalente ao AND do SQL.

Exemplo

repository.find({
  filter: {
    $and: [{ title: '诗经' }, { isbn: '1234567890' }],
  },
});

#$or

OR lógico. Equivalente ao OR do SQL.

Exemplo

repository.find({
  filter: {
    $or: [{ title: '诗经' }, { publishedAt: { $lt: '0000-00-00T00:00:00Z' } }],
  },
});

#Operadores de Campo Booleano

Para campos do tipo booleano type: 'boolean'

#$isFalsy

Verifica se o valor de um campo booleano é falso. Valores de campo booleanos como false, 0 e NULL são considerados $isFalsy: true.

Exemplo

repository.find({
  filter: {
    isPublished: {
      $isFalsy: true,
    },
  },
});

#$isTruly

Verifica se o valor de um campo booleano é verdadeiro. Valores de campo booleanos como true e 1 são considerados $isTruly: true.

Exemplo

repository.find({
  filter: {
    isPublished: {
      $isTruly: true,
    },
  },
});

#Operadores de Campo Numérico

Para campos numéricos, incluindo:

  • type: 'integer'
  • type: 'float'
  • type: 'double'
  • type: 'real'
  • type: 'decimal'

#$gt

Verifica se o valor do campo é maior que o valor especificado. Equivalente ao > do SQL.

Exemplo

repository.find({
  filter: {
    price: {
      $gt: 100,
    },
  },
});

#$gte

Verifica se o valor do campo é maior ou igual ao valor especificado. Equivalente ao >= do SQL.

Exemplo

repository.find({
  filter: {
    price: {
      $gte: 100,
    },
  },
});

#$lt

Verifica se o valor do campo é menor que o valor especificado. Equivalente ao < do SQL.

Exemplo

repository.find({
  filter: {
    price: {
      $lt: 100,
    },
  },
});

#$lte

Verifica se o valor do campo é menor ou igual ao valor especificado. Equivalente ao <= do SQL.

Exemplo

repository.find({
  filter: {
    price: {
      $lte: 100,
    },
  },
});

#$between

Verifica se o valor do campo está entre os dois valores especificados. Equivalente ao BETWEEN do SQL.

Exemplo

repository.find({
  filter: {
    price: {
      $between: [100, 200],
    },
  },
});

#$notBetween

Verifica se o valor do campo não está entre os dois valores especificados. Equivalente ao NOT BETWEEN do SQL.

Exemplo

repository.find({
  filter: {
    price: {
      $notBetween: [100, 200],
    },
  },
});

#Operadores de Campo de String

Para campos do tipo string, incluindo string

#$includes

Verifica se o campo de string contém a substring especificada.

Exemplo

repository.find({
  filter: {
    title: {
      $includes: '三字经',
    },
  },
});

#$notIncludes

Verifica se o campo de string não contém a substring especificada.

Exemplo

repository.find({
  filter: {
    title: {
      $notIncludes: '三字经',
    },
  },
});

#$startsWith

Verifica se o campo de string começa com a substring especificada.

Exemplo

repository.find({
  filter: {
    title: {
      $startsWith: '三字经',
    },
  },
});

#$notStartsWith

Verifica se o campo de string não começa com a substring especificada.

Exemplo

repository.find({
  filter: {
    title: {
      $notStartsWith: '三字经',
    },
  },
});

#$endsWith

Verifica se o campo de string termina com a substring especificada.

Exemplo

repository.find({
  filter: {
    title: {
      $endsWith: '三字经',
    },
  },
});

#$notEndsWith

Verifica se o campo de string não termina com a substring especificada.

Exemplo

repository.find({
  filter: {
    title: {
      $notEndsWith: '三字经',
    },
  },
});

#$like

Verifica se o valor do campo contém a string especificada. Equivalente ao LIKE do SQL.

Exemplo

repository.find({
  filter: {
    title: {
      $like: '计算机',
    },
  },
});

#$notLike

Verifica se o valor do campo não contém a string especificada. Equivalente ao NOT LIKE do SQL.

Exemplo

repository.find({
  filter: {
    title: {
      $notLike: '计算机',
    },
  },
});

#$iLike

Verifica se o valor do campo contém a string especificada, ignorando maiúsculas e minúsculas. Equivalente ao ILIKE do SQL (Apenas para PostgreSQL).

Exemplo

repository.find({
  filter: {
    title: {
      $iLike: 'Computer',
    },
  },
});

#$notILike

Verifica se o valor do campo não contém a string especificada, ignorando maiúsculas e minúsculas. Equivalente ao NOT ILIKE do SQL (Apenas para PostgreSQL).

Exemplo

repository.find({
  filter: {
    title: {
      $notILike: 'Computer',
    },
  },
});

#$regexp

Verifica se o valor do campo corresponde à expressão regular especificada. Equivalente ao REGEXP do SQL (Apenas para PostgreSQL).

Exemplo

repository.find({
  filter: {
    title: {
      $regexp: '^计算机',
    },
  },
});

#$notRegexp

Verifica se o valor do campo não corresponde à expressão regular especificada. Equivalente ao NOT REGEXP do SQL (Apenas para PostgreSQL).

Exemplo

repository.find({
  filter: {
    title: {
      $notRegexp: '^计算机',
    },
  },
});

#$iRegexp

Verifica se o valor do campo corresponde à expressão regular especificada, ignorando maiúsculas e minúsculas. Equivalente ao ~* do SQL (Apenas para PostgreSQL).

Exemplo

repository.find({
  filter: {
    title: {
      $iRegexp: '^COMPUTER',
    },
  },
});

#$notIRegexp

Verifica se o valor do campo não corresponde à expressão regular especificada, ignorando maiúsculas e minúsculas. Equivalente ao !~* do SQL (Apenas para PostgreSQL).

Exemplo

repository.find({
  filter: {
    title: {
      $notIRegexp: '^COMPUTER',
    },
  },
});

#Operadores de Campo de Data

Para campos do tipo data type: 'date'

#$dateOn

Verifica se o campo de data está em um dia específico.

Exemplo

repository.find({
  filter: {
    createdAt: {
      $dateOn: '2021-01-01',
    },
  },
});

#$dateNotOn

Verifica se o campo de data não está em um dia específico.

Exemplo

repository.find({
  filter: {
    createdAt: {
      $dateNotOn: '2021-01-01',
    },
  },
});

#$dateBefore

Verifica se o campo de data é anterior a um valor específico. Equivalente a ser menor que o valor de data fornecido.

Exemplo

repository.find({
  filter: {
    createdAt: {
      $dateBefore: '2021-01-01T00:00:00.000Z',
    },
  },
});

#$dateNotBefore

Verifica se o campo de data não é anterior a um valor específico. Equivalente a ser maior ou igual ao valor de data fornecido.

Exemplo

repository.find({
  filter: {
    createdAt: {
      $dateNotBefore: '2021-01-01T00:00:00.000Z',
    },
  },
});

#$dateAfter

Verifica se o campo de data é posterior a um valor específico. Equivalente a ser maior que o valor de data fornecido.

Exemplo

repository.find({
  filter: {
    createdAt: {
      $dateAfter: '2021-01-01T00:00:00.000Z',
    },
  },
});

#$dateNotAfter

Verifica se o campo de data não é posterior a um valor específico. Equivalente a ser menor ou igual ao valor de data fornecido.

Exemplo

repository.find({
  filter: {
    createdAt: {
      $dateNotAfter: '2021-01-01T00:00:00.000Z',
    },
  },
});

#Operadores de Campo de Array

Para campos do tipo array type: 'array'

#$match

Verifica se o valor do campo de array corresponde aos valores no array especificado.

Exemplo

repository.find({
  filter: {
    tags: {
      $match: ['文学', '历史'],
    },
  },
});

#$notMatch

Verifica se o valor do campo de array não corresponde aos valores no array especificado.

Exemplo

repository.find({
  filter: {
    tags: {
      $notMatch: ['文学', '历史'],
    },
  },
});

#$anyOf

Verifica se o valor do campo de array contém qualquer um dos valores no array especificado.

Exemplo

repository.find({
  filter: {
    tags: {
      $anyOf: ['文学', '历史'],
    },
  },
});

#$noneOf

Verifica se o valor do campo de array não contém nenhum dos valores no array especificado.

Exemplo

repository.find({
  filter: {
    tags: {
      $noneOf: ['文学', '历史'],
    },
  },
});

#$arrayEmpty

Verifica se o campo de array está vazio.

Exemplo

repository.find({
  filter: {
    tags: {
      $arrayEmpty: true,
    },
  },
});

#$arrayNotEmpty

Verifica se o campo de array não está vazio.

Exemplo

repository.find({
  filter: {
    tags: {
      $arrayNotEmpty: true,
    },
  },
});

#Operadores de Campo de Relacionamento

Utilizados para verificar se um relacionamento existe. Os tipos de campo incluem:

  • type: 'hasOne'
  • type: 'hasMany'
  • type: 'belongsTo'
  • type: 'belongsToMany'

#$exists

Dados de relacionamento existem.

Exemplo

repository.find({
  filter: {
    author: {
      $exists: true,
    },
  },
});

#$notExists

Dados de relacionamento não existem.

Exemplo

repository.find({
  filter: {
    author: {
      $notExists: true,
    },
  },
});