下面是我的 firestore 集合结构
我的vue获取数据的方法
fetchResults(){
db.collection('data').onSnapshot((querySnapShot)=>{
let results = [];
querySnapShot.forEach(doc=>{
results.push(doc.data())
})
this.record=results;
})
}
我想要的是像
group by ID and order by sec_id desc
这样在文档中查询。
我该如何查询?
这样我就可以得到按 ID 字段分组的文档。
截至 2022 年 10 月,您可以使用计数、总和和最大值进行聚合查询。
作为 NoSQL 类型数据库,Cloud Firestore 不提供任何聚合查询,例如分组、求和、最大值等。您必须在客户端代码中执行这些操作。 对于您的情况,这意味着您必须查询集合中的所有文档,然后按您想要的任何字段对它们进行分组。 或者,您可以维护一个单独的预分组文档集合来满足您的查询。 (这样的数据复制在NoSQL类型的数据库中很常见。)
fetchResults(){
db.collection('data')
.orderBy("id", "asc")
.onSnapshot((querySnapShot)=>{
// Do something
})
}
更多信息请访问
https://firebase.google.com/docs/firestore/query-data/order-limit-data,您还可以通过点击过滤器图标来应用过滤器
import { mapValues, groupBy, omit } from "lodash";
export const salesTrend = async () => {
const orderData: any[] = [];
const orderResponse = await getDocs(collectionRef);
const orders = orderResponse.docs
orders.forEach(order => orderData.push(order.data()))
let grouped = mapValues(groupBy(orderData, 'orderDate'),
clist => clist.map(car => omit(car, 'orderDate'))
);
console.log(grouped);
}