Dictionary 使用连接将fluent结果映射到结构

Dictionary 使用连接将fluent结果映射到结构,dictionary,tuples,fluent,vapor,flatmap,Dictionary,Tuples,Fluent,Vapor,Flatmap,好吧,我一直在努力解决Vapor/Fluent和更复杂的数据返回问题 我基本上是尝试在fluent mysql中返回以下查询: 选择e.*, 等等, 描述 从…起 e.tid=et.id上的e内部连接et 内部联接e.sid=es.id 其中e.deleted=0 相当标准。因此,我使用的func有以下“查询”: 返回设备。查询(on:req) .filter(\device.deleted==false) .join(\Equipment.typeid,to:\EquipmentTypes.

好吧,我一直在努力解决Vapor/Fluent和更复杂的数据返回问题

我基本上是尝试在fluent mysql中返回以下查询:

选择e.*,
等等,
描述
从…起
e.tid=et.id上的e内部连接et
内部联接e.sid=es.id
其中e.deleted=0
相当标准。因此,我使用的func有以下“查询”:

返回设备。查询(on:req)
.filter(\device.deleted==false)
.join(\Equipment.typeid,to:\EquipmentTypes.id)
.join(\Equipment.seriesid,收件人:\EquipmentSeries.id)
.alsoDecode(设备类型.self)
.alsoDecode(设备系列.self)
.all()
我知道我不能让函数返回基本型号a la:

返回设备.query(on:req).解码(device.self).all()
所以我需要“映射”或“平面映射”到一个结构,所以我定义了一个(暂时忽略init):

struct EquipmentArray:可编码{
让id:Int
let description:字符串
让seriesid:Int
let系列:字符串
让typeid:Int
let类型:String
让mintime:Int
让maxtime:Int
房间长度:双人间
房间宽度:双人间
让灯在底部:Bool
让灯在顶部:Bool
让你的脸:Bool
让你的肩膀:布尔
让我看看你的脖子:嘘
让我们删除:Bool
init(id:Int){
self.id=id
}
}
这给了我一个函数头,用作:

func getAllHandler(\ureq:Request)抛出->未来{
这里是我挂断电话的地方-我可以看到在何处将flatMap/map 1结果映射到结构的示例,但没有将元组(?)映射到结构的示例。基本上映射
[((设备,设备类型),设备系列)]->[EquipmentArray]

有谁有好的例子来说明如何做到这一点吗