现已推出具有 MongoDB 兼容性的 Firestore 企业版!
了解详情。
Datenstruktur auswählen
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Beachten Sie, dass Sie für die Strukturierung Ihrer Daten in Cloud Firestore verschiedene Optionen haben:
- Dokumente
- Mehrere Sammlungen
- Untergeordnete Sammlungen in Dokumenten
Bedenken Sie die Vorteile jeder einzelnen Option in Bezug auf Ihren Anwendungsfall. Einige Beispielstrukturen für hierarchische Daten werden in diesem Leitfaden beschrieben.
Verschachtelte Daten in Dokumenten
Sie können komplexe Objekte wie Arrays oder Karten in Dokumenten verschachteln.
- Vorteile: Wenn Sie einfache, feste Listen mit Daten haben, die Sie in Ihren Dokumenten behalten möchten, lässt sich diese Form der Datenstruktur ganz einfach einrichten und wird dabei gleichzeitig optimiert.
-
Beschränkungen: Diese Option ist nicht so skalierbar wie andere, insbesondere wenn Ihre Datenmenge im Laufe der Zeit wächst. Mit größeren oder wachsenden Listen wächst auch das Dokument, was den Dokumentenabruf verlangsamen kann.
- Was ist ein möglicher Anwendungsfall? In einer Chat-App könnten Sie beispielsweise die drei zuletzt besuchten Chatrooms eines Nutzers als verschachtelte Liste in seinem Profil speichern.
|
- class alovelace
- Name:
Vorname: "Ada"
Nachname: "Lovelace"
geboren: 1815
Chatrooms:
0: "Softwarechat"
1: "Berühmte Personen"
2 :"Berühmte Softwareentwickler"
|
Untergeordnete Sammlungen
Wenn die Menge Ihrer Daten möglicherweise mit der Zeit wächst, können Sie Sammlungen innerhalb von Dokumenten erstellen.
- Vorteile: Wenn die Listen größer werden, bleibt das übergeordnete Dokument dennoch gleich groß. Sie haben auch umfassende Abfragemöglichkeiten für untergeordnete Sammlungen und können Sammlungsgruppenabfragen für alle untergeordneten Sammlungen ausführen.
- Beschränkungen: Das Löschen untergeordneter Sammlungen ist nicht ganz einfach.
- Was ist ein möglicher Anwendungsfall? In derselben Chat-App könnten Sie beispielsweise innerhalb von Chatroom-Dokumenten Sammlungen von Nutzern oder Nachrichten erstellen.
|
- collections_bookmark Wissenschaft
- class Software
Name: "Softwarechat"
- collections_bookmark
Nutzer
- class
alovelace
Vorname: "Ada"
Nachname: "Lovelace"
- class
sride
Vorname: "Sally"
Nachname: "Ride"
- class Astrophysik
|
Sammlungen auf Stammebene
Erstellen Sie Sammlungen auf der Stammebene Ihrer Datenbank, um unterschiedliche Datasets zu organisieren.
- Vorteile: Sammlungen auf Stammebene eignen sich für m:n-Beziehungen und bieten leistungsstarke Abfragen innerhalb jeder einzelnen Sammlung.
- Beschränkungen: Das Abrufen natürlicherweise hierarchisch strukturierter Daten kann mit dem Wachsen der Datenbank immer komplexer werden.
- Was ist ein möglicher Anwendungsfall? In derselben Chat-App könnten Sie beispielsweise eine Sammlung für Nutzer und eine weitere für Chatrooms und Nachrichten erstellen.
|
- collections_bookmark
Nutzer
- class alovelace
Vorname: "Ada"
Nachname: "Lovelace"
geboren: 1815
- class sride
Vorname: "Sally"
Nachname: "Ride"
geboren: 1951
- collections_bookmark Chatrooms
- class Software
- collections_bookmark
Nachrichten
- class
Nachricht1
von: "alovelace"
Inhalt: "..."
- class
Nachricht2
von: "sride"
Inhalt: "..."
|
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2025-08-16 (UTC).
[null,null,["Zuletzt aktualisiert: 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 : \"...\" |"]]