|
15 | 15 | from time import sleep
|
16 | 16 |
|
17 | 17 | from google.cloud import firestore
|
18 |
| -from google.cloud.firestore_v1beta1 import ArrayRemove, ArrayUnion |
| 18 | +from google.cloud.firestore_v1 import ArrayRemove, ArrayUnion |
19 | 19 | import google.cloud.exceptions
|
20 | 20 |
|
21 | 21 |
|
@@ -815,3 +815,64 @@ def delete_collection(coll_ref, batch_size):
|
815 | 815 | # [END delete_full_collection]
|
816 | 816 |
|
817 | 817 | delete_collection(db.collection(u'cities'), 10)
|
| 818 | + |
| 819 | + |
| 820 | +def collection_group_query(db): |
| 821 | + # [START fs_collection_group_query_data_setup] |
| 822 | + cities = db.collection(u'cities') |
| 823 | + |
| 824 | + sf_landmarks = cities.document(u'SF').collection(u'landmarks') |
| 825 | + sf_landmarks.document().set({ |
| 826 | + u'name': u'Golden Gate Bridge', |
| 827 | + u'type': u'bridge' |
| 828 | + }) |
| 829 | + sf_landmarks.document().set({ |
| 830 | + u'name': u'Legion of Honor', |
| 831 | + u'type': u'museum' |
| 832 | + }) |
| 833 | + la_landmarks = cities.document(u'LA').collection(u'landmarks') |
| 834 | + la_landmarks.document().set({ |
| 835 | + u'name': u'Griffith Park', |
| 836 | + u'type': u'park' |
| 837 | + }) |
| 838 | + la_landmarks.document().set({ |
| 839 | + u'name': u'The Getty', |
| 840 | + u'type': u'museum' |
| 841 | + }) |
| 842 | + dc_landmarks = cities.document(u'DC').collection(u'landmarks') |
| 843 | + dc_landmarks.document().set({ |
| 844 | + u'name': u'Lincoln Memorial', |
| 845 | + u'type': u'memorial' |
| 846 | + }) |
| 847 | + dc_landmarks.document().set({ |
| 848 | + u'name': u'National Air and Space Museum', |
| 849 | + u'type': u'museum' |
| 850 | + }) |
| 851 | + tok_landmarks = cities.document(u'TOK').collection(u'landmarks') |
| 852 | + tok_landmarks.document().set({ |
| 853 | + u'name': u'Ueno Park', |
| 854 | + u'type': u'park' |
| 855 | + }) |
| 856 | + tok_landmarks.document().set({ |
| 857 | + u'name': u'National Museum of Nature and Science', |
| 858 | + u'type': u'museum' |
| 859 | + }) |
| 860 | + bj_landmarks = cities.document(u'BJ').collection(u'landmarks') |
| 861 | + bj_landmarks.document().set({ |
| 862 | + u'name': u'Jingshan Park', |
| 863 | + u'type': u'park' |
| 864 | + }) |
| 865 | + bj_landmarks.document().set({ |
| 866 | + u'name': u'Beijing Ancient Observatory', |
| 867 | + u'type': u'museum' |
| 868 | + }) |
| 869 | + # [END fs_collection_group_query_data_setup] |
| 870 | + |
| 871 | + # [START fs_collection_group_query] |
| 872 | + museums = db.collection_group(u'landmarks')\ |
| 873 | + .where(u'type', u'==', u'museum') |
| 874 | + docs = museums.get() |
| 875 | + for doc in docs: |
| 876 | + print(u'{} => {}'.format(doc.id, doc.to_dict())) |
| 877 | + # [END fs_collection_group_query] |
| 878 | + return docs |
0 commit comments