A edição Enterprise do Firestore com compatibilidade com o MongoDB já está disponível.
Saiba mais.
Escolher uma estrutura de dados
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Lembre-se de que, quando você estrutura os dados no Cloud Firestore, há algumas opções diferentes:
- Documentos
- Várias coleções
- Subcoleções em documentos
Avalie as vantagens de cada opção de acordo com seu caso de uso. Neste guia, mostramos alguns exemplos de estruturas de dados hierárquicos.
Dados aninhados em documentos
Aninhe objetos complexos como matrizes ou mapas em documentos.
- Vantagens: se você tem listas de dados simples e fixas que pretende manter nos documentos, é fácil configurar e simplificar a estrutura de dados.
-
Limitações: esse recurso não é tão escalonável quanto as outras opções, principalmente se os dados se expandem ao longo do tempo. Com listas maiores ou em constante crescimento, o documento também cresce, o que pode resultar em tempos de recuperação de documentos mais lentos.
- Que caso de uso é possível? Em um app de bate-papo, por exemplo, você pode armazenar as três salas de bate-papo de um usuário visitadas mais recentemente como uma lista aninhada no perfil dele.
|
- class alovelace
- Nome:
Primeiro: "Ada"
Último: "Lovelace"
Data de nascimento: 1815
Salas:
0: "Chat sobre software"
1: "Pessoas famosas"
2: "Organização SWE"
|
Subcoleções
É possível criar coleções em documentos quando há dados que podem se expandir
ao longo do tempo.
- Vantagens: conforme as listas crescem, o tamanho do documento pai
não muda. Você também tem acesso a recursos completos de consulta em subcoleções e pode emitir
consultas de grupo de coleções em subcoleções.
-
Limitações: não é fácil excluir subcoleções.
- Que caso de uso é possível? No mesmo app de bate-papo, por exemplo, você pode criar coleções de usuários ou mensagens em documentos da sala de bate-papo.
|
- collections_bookmark ciência
- class software
Nome: "chat sobre software"
- collections_bookmark
usuários
- class
alovelace
Primeiro: "Ada"
Último: "Lovelace"
- class
sride
Primeiro: "Sally"
Último: "Ride"
- class astrofísica
|
Coleções no nível raiz
Crie coleções no nível raiz do banco de dados para organizar conjuntos de dados diferentes.
- Vantagens: as coleções no nível raiz são boas para relações de muitos para muitos
e oferecem consultas avançadas em cada coleção.
-
Limitações: o acesso a dados, que é naturalmente hierárquico, pode tornar-se cada vez mais complexo à medida que o banco de dados aumenta.
- Que caso de uso é possível? No mesmo app de bate-papo, por exemplo, você pode criar uma coleção de usuários e outra de salas e mensagens.
|
- collections_bookmark
users
- class alovelace
Primeiro: "Ada"
Último: "Lovelace"
Data de nascimento: 1815
- class sride
Primeiro: "Sally"
Último: "Ride"
Data de nascimento: 1951
- collections_bookmark salas
- class software
- collections_bookmark
mensagens
- class
mensagem1
De: "alovelace"
Conteúdo: "..."
- class
mensagem2
De: "sride"
Conteúdo: "..."
|
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-08-16 UTC.
[null,null,["Última atualização 2025-08-16 UTC."],[],[],null,["\u003cbr /\u003e\n\nRemember, when you structure your data in Cloud Firestore, you\nhave a few different options:\n\n- Documents\n- Multiple collections\n- Subcollections within documents\n\nConsider the advantages of each option as they\nrelate to your use case. A few example structures for hierarchical data\nare outlined in this guide.\n\n\u003cbr /\u003e\n\nNested data in documents\n\nYou can nest complex objects like arrays or maps within documents.\n\n|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------|\n| - **Advantages:** If you have simple, fixed lists of data that you want to keep within your documents, this is easy to set up and streamlines your data structure. - **Limitations:** This isn't as scalable as other options, especially if your data expands over time. With larger or growing lists, the document also grows, which can lead to slower document retrieval times. - **What's a possible use case?** In a chat app, for example, you might store a user's 3 most recently visited chat rooms as a nested list in their profile. | - class alovelace - name : first : \"Ada\" last : \"Lovelace\" born : 1815 rooms : 0 : \"Software Chat\" 1 : \"Famous Figures\" 2 : \"Famous SWEs\" |\n\nSubcollections\n\nYou can create collections within documents when you have data that might expand\nover time.\n\n|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| - **Advantages:** As your lists grow, the size of the parent document doesn't change. You also get full query capabilities on subcollections, and you can issue [collection group queries](../query-data/queries) across subcollections. - **Limitations:** You can't easily delete subcollections. - **What's a possible use case?** In the same chat app, for example, you might create collections of users or messages within chat room documents. | - collections_bookmark science - class software name : \"software chat\" - collections_bookmark users - class alovelace first : \"Ada\" last : \"Lovelace\" - class sride first : \"Sally\" last : \"Ride\"\\` \u003cbr /\u003e \u003cbr /\u003e - class astrophysics - ... |\n\nRoot-level collections\n\nCreate collections at the root level of your database to organize disparate data\nsets.\n\n|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| - **Advantages:** Root-level collections are good for many-to-many relationships and provide powerful querying within each collection. - **Limitations:** Getting data that is naturally hierarchical might become increasingly complex as your database grows. - **What's a possible use case?** In the same chat app, for example, you might create one collection for users and another for rooms and messages. | - collections_bookmark users - class alovelace first : \"Ada\" last : \"Lovelace\" born : 1815 - class sride first : \"Sally\" last : \"Ride\" born : 1951 - collections_bookmark rooms - class software - collections_bookmark messages - class message1 from : \"alovelace\" content : \"...\" - class message2 from : \"sride\" content : \"...\" |"]]