學生是屬于某個班級,在學生集合中會有一列是班級標識;
學生有自己的刷卡情況,在另一個集合中存盤,這個集合中沒有班級標識。
我要怎么根據班級標識查出這個班所有學生總共的刷卡次數?
我用的開發語言是java,目前我所能想到的解決方案如下:
1、修改存盤結構,在刷卡記錄的集合中再增加記錄,但是這個很不靈活,后面如果再增加其它統計會使冗余資訊很多;
2、根據班級取出所有學生資訊,遍歷把學生id放進一個集合,再根據這個集合用in去統計
uj5u.com熱心網友回復:
用mongodb就是用冗余來提升性能建議一個學生存一個document,包含各種班級 屬性卡記錄等等
uj5u.com熱心網友回復:
db.getCollection("class").aggregate({ $lookup: { from: "qty", localField: "student", foreignField: "student", as: "scoresDocs" } },
{ $unwind: "$scoresDocs" },
{$group: {
"_id": {"class" : "$class"} ,
"qty":{"$sum" : "$scoresDocs.qty"}
}
}
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/85452.html
標籤:MongoDB
上一篇:pgsql如何監控主從延遲情況
