首页 > 解决方案 > 如何使用 Fluent 在 Vapor 中使用字符串 PostgreSQL 查询?

问题描述

我正在使用 Vapor 4 beta 编写一些 API。我有一个在后台运行的 PostgreSQL 数据库,我想过滤一个表,并检查是否在某个日期间隔内创建了特定行。

我的查询应该是这样的:

SELECT *
FROM notes
WHERE date BETWEEN '2020-07-03' AND '2020-07-04'

该查询适用于数据库(我尝试使用 Postico 客户端),但是我想在 Xcode 中将它与 Fluent 一起使用。

我试过这样的事情:

func retrieveNotes(req : Request) throws -> EventLoopFuture<[Note]> {
    guard let userID = req.parameters.get("userID", as: UUID.self) else {throw Abort(.notFound)}
    if let postgres = req.db as? PostgresDatabase {
        return postgres.query("SELECT * FROM notes WHERE date BETWEEN '2020-07-03' AND '2020-07-04")
    } else {
        //throw some errors
    }
}

它不起作用,它说:“无法将 'EventLoopF​​uture' 类型的返回表达式转换为返回类型 'EventLoopF​​uture<[Note]>'”

我怎样才能投射我的结果,或以某种方式解决这个问题?

标签: swiftpostgresqlvapor-fluent

解决方案


推荐阅读