在 Vapor 中链接多个查询过滤器 - 服务器端 Swift

Chaining Multiple Query Filters in Vapor - Server Side Swift

我们可以在 vapor 中应用一个简单的查询过滤器:

// User is my model object connecting corresponding MySQL database table
let aUser = try User.query().filter("user_email", "asd@example.com")

我们如何像在 SQL 查询中那样使用 AND 或 OR 条件链接多个查询过滤器?

例如,如果我们需要用 AND 条件连接 filter("user_email", "asd@example.com")filter("user_password", "123456"),我们如何实现?

据我所知,.filter 函数会在检查过滤条件后抛出一个布尔值。因此,您可以尝试将两个条件与逻辑 AND 运算符结合起来。对于正确的解决方案,最好了解对象 User: 的结构和属性,但建议是:

    let aUser = User.query().filter { condition1 && condition2 }
如果两个条件都为真,

Filter 只会将 User.query() 的元素传递给 aUser。确保 User.query() 是一个数组,并且您在条件中使用 $0 引用当前对象。过滤器函数还将 return 一个数组。