现已推出具有 MongoDB 兼容性的 Firestore 企业版!
了解详情。
Veri yapısı seçin
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Verilerinizi Cloud Firestore içinde yapılandırırken birkaç farklı seçeneğiniz olduğunu unutmayın:
- Dokümanlar
- Birden fazla koleksiyon
- Dokümanlardaki alt koleksiyonlar
Her seçeneğin kullanım alanınızla ilgili avantajlarını göz önünde bulundurun. Hiyerarşik verilerle ilgili birkaç örnek yapı bu kılavuzda açıklanmıştır.
Belgelerdeki iç içe yerleştirilmiş veriler
Diziler veya haritalar gibi karmaşık nesneleri dokümanlara yerleştirebilirsiniz.
- Avantajları: Belgelerinizde tutmak istediğiniz basit ve sabit veri listeleriniz varsa bu özelliği kolayca ayarlayabilir ve veri yapınızı basitleştirebilirsiniz.
-
Sınırlamalar:
Bu seçenek, özellikle verileriniz zaman içinde genişliyorsa diğer seçenekler kadar ölçeklenebilir değildir. Daha büyük veya büyüyen listelerde doküman da büyür. Bu durum, doküman alma sürelerinin yavaşlamasına neden olabilir.
- Olası bir kullanım alanı nedir? Örneğin, bir sohbet uygulamasında kullanıcının en son ziyaret ettiği 3 sohbet odasını profilinde iç içe geçmiş bir liste olarak saklayabilirsiniz.
|
- class alovelace
- name :
first : "Ada"
last : "Lovelace"
born : 1815
rooms :
0 : "Software Chat"
1 : "Famous Figures"
2 : "Famous SWEs"
|
Alt koleksiyonlar
Zaman içinde genişleyebilecek verileriniz olduğunda dokümanlarda koleksiyonlar oluşturabilirsiniz.
- Avantajları: Listeleriniz büyüdükçe üst dokümanın boyutu değişmez. Ayrıca alt koleksiyonlarda tam sorgu özelliklerinden yararlanabilir ve alt koleksiyonlar arasında
koleksiyon grubu sorguları yayınlayabilirsiniz.
-
Sınırlamalar: Alt koleksiyonları kolayca silemezsiniz.
- Olası bir kullanım alanı nedir? Aynı sohbet uygulamasında, örneğin, sohbet odası dokümanlarında kullanıcı veya mesaj koleksiyonları oluşturabilirsiniz.
|
- collections_bookmark science
- class yazılımı
adı : "software chat"
- collections_bookmark
users
- class
alovelace
first : "Ada"
last : "Lovelace"
- class
sride
first : "Sally"
last : "Ride"`
- class astrofizik
|
Kök düzeyindeki koleksiyonlar
Farklı veri kümelerini düzenlemek için veritabanınızın kök düzeyinde koleksiyonlar oluşturun.
- Avantajları: Kök düzeyindeki koleksiyonlar, çoktan çoğa ilişkiler için uygundur ve her koleksiyonda güçlü sorgulama olanağı sağlar.
-
Sınırlamalar: Doğal olarak hiyerarşik olan verileri almak, veritabanınız büyüdükçe giderek daha karmaşık hale gelebilir.
- Olası bir kullanım alanı nedir? Aynı sohbet uygulamasında, örneğin, kullanıcılar için bir koleksiyon, odalar ve mesajlar için başka bir koleksiyon oluşturabilirsiniz.
|
- collections_bookmark
users
- class alovelace
first : "Ada"
last : "Lovelace"
born : 1815
- class sride
first : "Sally"
last : "Ride"
born : 1951
- collections_bookmark oda
- class yazılımı
- collections_bookmark
messages
- class
message1
from : "alovelace"
content : "..."
- class
message2
from : "sride"
content : "..."
|
Aksi belirtilmediği sürece bu sayfanın içeriği Creative Commons Atıf 4.0 Lisansı altında ve kod örnekleri Apache 2.0 Lisansı altında lisanslanmıştır. Ayrıntılı bilgi için Google Developers Site Politikaları'na göz atın. Java, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-08-16 UTC.
[null,null,["Son güncelleme tarihi: 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 : \"...\" |"]]