Firestore Группировка по полю
Ниже представлена структура моей коллекции 9X_vue-js Firestore
Мой метод vue для получения данных
fetchResults(){ db.collection('data').onSnapshot((querySnapShot)=>{ let results = []; querySnapShot.forEach(doc=>{ results.push(doc.data()) }) this.record=results; }) }
Я 9X_vuetify.js хочу сделать запрос в документе, например, group by ID and order by sec_id desc
.
Как 9X_firebase мне сделать такой запрос?
Чтобы я получил 9X_firebasefirestore документ, сгруппированный по полю идентификатора.
Ответ #1
Ответ на вопрос: Firestore Группировка по полю
Как база данных типа NoSQL, Cloud Firestore 9X_firebasefirestore не предлагает никаких запросов агрегирования, таких 9X_vuejs как группировка, сумма, максимум и т. д. Вы 9X_vue должны выполнять эти операции в своем клиентском 9X_vuetify коде. В вашем случае это означает, что вам 9X_vue-js нужно будет запросить все документы в коллекции, а 9X_cloud-firestore затем сгруппировать их по любым нужным полям. В 9X_vuetify.js качестве альтернативы вы можете вести отдельную 9X_vuetify.js коллекцию предварительно сгруппированных 9X_cloud-firestore документов, чтобы удовлетворить ваш запрос. (Подобное 9X_firebase-firestore дублирование данных часто встречается в 9X_firebase-firestore базах данных типа NoSQL.)
Ответ #2
Ответ на вопрос: Firestore Группировка по полю
Вы можете использовать
fetchResults(){ db.collection('data') .orderBy("id", "asc") .onSnapshot((querySnapShot)=>{ // Do something }) }
Для получения дополнительной 9X_vue.js информации посетите https://firebase.google.com/docs/firestore/query-data/order-limit-data, и вы также можете 9X_firebase применить фильтр, щелкнув значок фильтра
Ответ #3
Ответ на вопрос: Firestore Группировка по полю
Вместо вычисления данных с помощью агрегированного 9X_vuejs запроса данные должны быть сохранены в самом 9X_vuetify документе с использованием логики на стороне 9X_firebase-android клиента для обновления агрегированных данных 9X_vuetify каждый раз при изменении документа или использовании 9X_vue облачных функций.
См. это сообщение в блоге 9X_vuetify Google.
https://firebase.google.com/docs/firestore/solutions/aggregation
-
1
-
1
-
2
-
3
-
3
-
4
-
17
-
2
-
4
-
1
-
7
-
2
-
6
-
5
-
2
-
2
-
3
-
4
-
3
-
2
-
4
-
3
-
3
-
2
-
3
-
1
-
1
-
1
-
1
-
3
-
2
-
4
-
2
-
3
-
4
-
5
-
2
-
5
-
5
-
2
-
4
-
3
-
4
-
11
-
7
-
7
-
4
-
4
-
4
-
6