主要针对gin框架中如何使用
假设有两张表
order表
{
"_id": ObjectId("65aa2b2203abce203bbe3c7a"),
"name": "骆驼祥子",
"route": "/test/v2/desktop",
"bookshelf": "03",
"mac": "11.22.33.44",
"createTime": ISODate("2024-04-17T06:54:39.744Z"),
"updateTime": ISODate("2024-04-17T06:54:39.744Z")
}
orderRemark表
{
"_id": ObjectId("65aa2b2203abce203bbe3c7d"),
"orderId": "65aa2b2203abce203bbe3c7a",
"remark": "文学",
"createTime": ISODate("2024-04-17T06:54:39.744Z"),
"updateTime": ISODate("2024-04-17T06:54:39.744Z")
}
如何进行多表联查
我们可以使用 mongoDB 的 $lookup关键字:
{"$lookup", bson.D{
{"from", "orderRemark"}, // 关联的集合名
{"localField", "_id"}, // 本地集合(order)的字段
{"foreignField", "orderId"}, // 外部集合(orderRemark)的字段
{"as", "remarks"}, // 保存结果的字段名
}}
如何分组查询数量
假设我们要根据 bookshelf字段分组查询数量,那我们可以使用 mongoDB 的 $group 关键字:
{"$group", bson.D{
{"_id", "$programId"},
{"count", bson.D{{"$sum", 1}}}, // $sum 获取数量,字段定义为 count
{"remark", bson.D{{"$addToSet", "$remarks.remark"}}}, // 提取 remarks 中的 remark 字段
}}
END