如何正确处理 Fluent/Vapor 中的简化模型?

How to correctly handle simplified model in Fluent/Vapor?

假设,我有一个 User 模型,这个模型包含 products children(一对多关系)。

在某些情况下,在我的 iOS 应用程序中,我只需要显示所有用户的列表,因此我不需要查询我的数据库中的产品。

如何以最简单的方式在 Fluent 中获取没有 children 的用户? 我是否需要创建一个不包含产品的单独模型?

func getAllUsersHandler(_ request: Request) -> EventLoopFuture<[User]> {
    User.query(on: request.db).all()
}

默认情况是对 User 模型的查询不会在结果中包含任何 Children 字段。要包含它们,您需要在查询中 .with(\.$products)

您可以通过修改查询来限制返回的字段,如示例所示:

User.query(on: request.db).field(\.$name).field(\.$email).all()

这只会将那些字段带入模型中,并在未初始化状态下留下不需要的字段。有关详细信息,请参阅 here