dictionary - 使用连接将流利的结果映射到结构
问题描述
好的,所以,我一直在为 Vapor/Fluent 和更复杂的数据返回而苦苦挣扎。
我基本上试图在 fluent-mysql 中返回以下查询:
select e.*,
et.description,
es.description
from
e inner join et on e.tid = et.id
inner join e.sid=es.id
where e.deleted=0
相当标准。所以,我使用的函数有这个“查询”:
return Equipment.query(on: req)
.filter(\Equipment.deleted==false)
.join(\Equipment.typeid, to: \EquipmentTypes.id )
.join(\Equipment.seriesid, to: \EquipmentSeries.id )
.alsoDecode(EquipmentTypes.self)
.alsoDecode(EquipmentSeries.self)
.all()
我知道我不能让函数返回一个基本模型:
return Equipment.query(on: req).decode(Equipment.self).all()
所以我需要“映射”或“flatMap”到一个结构,所以我定义了一个(暂时忽略初始化):
struct EquipmentArray: Encodable {
let id: Int
let description: String
let seriesid: Int
let series: String
let typeid: Int
let type: String
let mintime: Int
let maxtime: Int
let room_length: Double
let room_width: Double
let lamps_bottom: Bool
let lamps_top: Bool
let lamps_facial: Bool
let lamps_shoulder: Bool
let lamps_neck: Bool
let deleted: Bool
init(id: Int){
self.id = id
}
}
这给了我函数头用作:
func getAllHandler(_ req: Request) throws -> Future<[EquipmentArray]>{
这是我挂断电话的地方 - 我可以看到将 flatMap/map 1 结果映射到结构的示例,但没有将元组(?)映射到结构的示例。基本上映射[((Equipment, EquipmentType), EquipmentSeries)] -> [EquipmentArray]
有没有人有任何关于如何做到这一点的好例子?
解决方案
推荐阅读
- python - 如何使用类列表作为函数参数?
- python - Python - Slate3k 安装 pdfminer 后给我一个类型错误
- javascript - 如何用正则表达式杀死 tabindex="*" 并在 Javascript 中全部替换
- javascript - 如何在运行第二个函数javascript之前等待第一个函数完成
- python-3.x - 如何从 UCI 机器学习存储库将数据集(.data 和 .names)直接读入 Python DataFrame
- angular - PrimeNg- 悬停时的 p 下拉工具提示
- javascript - javascript从数组中读取对象
- django - Django 尝试使用现有主键保存对象
- filter - 卡尔曼滤波器实现在高冲击和加速度下使用 IMU 估计位置
- python-3.x - python只返回值