现已推出具有 MongoDB 兼容性的 Firestore 企业版!
了解详情。
Choisir une structure de données
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Lorsque vous structurez vos données dans Cloud Firestore, plusieurs options s'offrent à vous :
- Documents
- Collections multiples
- Sous-collections au sein de documents
Examinez les avantages de chaque option en fonction de vos besoins. Ce guide présente quelques exemples de structures de données hiérarchiques.
Données imbriquées dans des documents
Vous pouvez imbriquer des objets complexes comme des tableaux ou des cartes au sein de documents.
- Avantages : Cette option est facile à mettre en œuvre et permet de simplifier la structure des données, si vous disposez de listes de données simples et fixes que vous souhaitez conserver dans vos documents.
-
Inconvénients : Cette option n'est pas aussi évolutive que les autres, en particulier si vos données s'étendent au fil du temps. Plus les listes s'allongent ou s'agrandissent, plus la taille du document s'accroît, ce qui peut ralentir la récupération des documents.
- Exemple de cas d'utilisation Dans une application de chat, vous pouvez utiliser une liste imbriquée dans le profil pour stocker les trois derniers salons de discussion visités par un utilisateur.
|
- class alovelace
- name :
first : "Ada" last : "Lovelace" born : 1815 rooms : 0 : "Software Chat" 1 : "Famous Figures" 2 : "Famous SWEs"
|
Sous-collections
Vous pouvez créer des collections dans des documents lorsque vous avez des données susceptibles de s'étendre au fil du temps.
- Avantages : La taille du document parent reste stable à mesure que vos listes s'agrandissent. Vous bénéficiez également de l'ensemble des fonctionnalités de requête sur les sous-collections et vous pouvez envoyer des requêtes de groupe de collections sur plusieurs sous-collections.
- Inconvénients : Les sous-collections sont difficiles à supprimer.
- Exemple de cas d'utilisation Dans la même application de chat, vous pouvez créer des collections d'utilisateurs ou de messages dans les documents des salons de discussion.
|
- collections_bookmark science
- class software
name : "software chat"- collections_bookmarkusers
- classalovelace
first : "Ada" last : "Lovelace"
- classsride
first : "Sally" last : "Ride"
- class astrophysics
|
Collections au niveau racine
Créez des collections au niveau racine de votre base de données pour organiser des ensembles de données disparates.
- Avantages : Les collections au niveau racine sont adaptées aux relations plusieurs à plusieurs et fournissent des requêtes performantes au sein de chaque collection.
- Inconvénients : Organiser vos données de façon naturellement hiérarchique peut devenir de plus en plus complexe à mesure que votre base de données s'agrandit.
- Exemple de cas d'utilisation Dans la même application de chat, vous pouvez créer une collection pour les utilisateurs et une autre pour les salons de discussion et les messages.
|
- collections_bookmarkusers
- class alovelace
first : "Ada" last : "Lovelace" born : 1815
- class sride
first : "Sally" last : "Ride" born : 1951
- collections_bookmark rooms
- class software
- collections_bookmarkmessages
- classmessage1
from : "alovelace" content : "..."
- classmessage2
from : "sride" content : "..."
|
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/16 (UTC).
[null,null,["Dernière mise à jour le 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 : \"...\" |"]]