Menu Docs
Página inicial do Docs
/ /
Atlas Device SDKs
/ / /

Coleções - SDK do Node.js

Nesta página

  • Visão geral
  • Resultados
  • Listas
  • Os resultados são avaliados preguiçosamente
  • As coleções estão ativas
  • Trabalhando com collection
  • Limitando resultados da consulta
  • Paginação
  • Resumo

O Realm tem vários tipos para representar grupos de objetos, que chamamos de coleções. Uma coleção é um objeto que contém zero ou mais instâncias de um tipo de Realm.

Você pode filtrar e classificar qualquer coleção usando o mecanismo de query do Realm. As coleções estão ativas, então elas sempre refletem o estado atual da instância do reino na thread atual. Você também pode ouvir as alterações na coleção assinando as notificações da coleção.

Uma coleção deresultados do representa os resultados avaliados displicentemente de uma operação de query. Os resultados são imutáveis: você não pode adicionar ou remover elementos da coleção de resultados. Os resultados têm uma query associada que determina seu conteúdo.

Dica

Veja também:

Uma Lista representa uma collection de valores de um único tipo. As listas são declaradas como uma propriedade dentro de um modelo de objeto e não estão associadas a uma query.

As listas se comportam como arrays JavaScript normais, exceto pelo fato de que só podem armazenar valores de um único tipo, que você indica definindo a propriedade type como o nome de um tipo de propriedade válido ou o nome de outro tipo de objeto do Realm.

const PetOwnerSchema = {
name: "PetOwner",
primaryKey: "_id",
properties: {
_id: "objectId",
person: "Person",
pets: {
type: "list",
objectType: "string", // this could also be a Realm object:
// objectType: "Pet",
optional: false, //null values are not allowed
},
},
};

Você só pode modificar uma Lista dentro de uma transação de escrita e as Listas são mutáveis: dentro da transação de escrita, você pode adicionar e remover elementos de e para a Lista.

O Realm só executa uma consulta quando você solicita os resultados dessa consulta. Essa avaliação preguiçosa permite que você escreva código elegante e de alto desempenho para lidar com grandes conjuntos de dados e query complexas.

Como os objetos ativos, as collections do Realm geralmente são ativas:

  • Coleções de resultados em tempo real sempre refletem os resultados atuais da query associada.

  • Listas ativas sempre refletem o estado atual do relacionamento na instância de domínio.

Uma collection não está ativa quando:

  • é uma coleção de resultados pela qual você está iterando usando um for..in ou para..de declaração. Ambas as instruções continuarão a iterar por objetos na coleção, mesmo que você tenha excluído ou modificado os objetos da coleção para excluí-los do filtro que produziram a coleção de resultados.

  • a coleção é um Results.snapshot() congelado.

Combinadas com notificações de collections , collections dinâmicas habilitam código reativo. Por exemplo, suponha que sua visualização exiba os resultados de uma query. Você pode manter uma referência à collection de resultados na classe de visualização e, em seguida, ler a collection de resultados conforme necessário sem precisar atualizá-la ou validar que está atualizada.

Importante

Os índices podem mudar

Como os resultados se atualizam automaticamente, não armazene o índice posicional de um objeto na coleção ou a contagem de objetos em uma coleção. O índice armazenado ou o valor de contagem podem estar desatualizados no momento em que você o utiliza.

Como resultado da avaliação preguiçosa, você não precisa de nenhum mecanismo especial para limitar os resultados da query com o Realm. Por exemplo, se a sua query corresponder a milhares de objeto, mas você quiser carregar somente os dez primeiros, acesse somente os dez primeiros elementos da collection de resultados.

Graças à avaliação preguiçosa, a tarefa comum da paginação se torna bastante simples. Por exemplo, suponha que você tenha uma coleção de resultados associada a uma consulta que corresponda a milhares de objetos em seu domínio. Você exibe cem objetos por página. Para avançar para qualquer página, basta acessar os elementos da coleta de resultados começando pelo índice que corresponde à página de destino.

  • Uma collection de Realm é um container uniforme de zero ou mais instâncias de um tipo de Realm.

  • Existem dois tipos principais de coleta: listas e resultados . As listas definem o relacionamento para muitos dos seus tipos de Realm, enquanto os resultados representam a saída carregada de forma lenta de uma operação de leitura.

  • A avaliação lenta das collection de resultados significa que não há necessidade de projetar uma query especial para obter resultados limitados ou paginados. Perform the query e leia a partir da collection de resultados conforme necessário.

  • Os dados no Realm são ativos, o que significa que um objeto sempre reflete seu estado salvo mais recente.

Voltar

Tipos de campo

Próximo

Contadores