Coleções - React Native SDK
Nesta página
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.
Resultados
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.
Listas
Uma Lista representa um relacionamento para muitos entre dois tipos de Realm. As listas são mutáveis: dentro de uma transação escrita, você pode adicionar e remover elementos de uma lista. As listas não estão associadas a uma query e são declaradas como propriedade de um modelo de objeto.
Os resultados são avaliados preguiçosamente
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.
As coleções estão ativas
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.
Trabalhando com collection
Limitando resultados da consulta
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.
Paginação
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.
Resumo
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.