我不想获取location字段,但返回其他字段。我该怎么做呢?
func getperinfo(_ req: Request) throws -> EventLoopFuture<[Info]>{
let user = try req.auth.require(User.self)
return Info.query(on: req.db).filter(\.$user.$id == user.id!).all()
}型号:
import Foundation
import Fluent
import Vapor
import FluentPostgresDriver
import FluentPostGIS
final class Info:Model,Content{
static let schema = "info"
@ID(key: .id)
var id:UUID?
@Field(key: "姓名")
var name: String
@Field(key: "IG帳號")
var account: String
@Field(key: "頭像")
var picture: String
@Field(key: "年紀")
var age: String
@Field(key: "生日")
var birth: String
@Field(key: "居住城市")
var city: String
@Field(key: "興趣")
var hobby : String
@Field(key:"位置")
var location: GeometricPoint2D
@Parent(key: "user_id")
var user: User
init(){}
init(id:UUID?=nil, name:String, account:String, picture:String ,age:String, birth:String,location: GeometricPoint2D , city:String, hobby:String, userId:UUID){
self.id=id
self.name=name
self.account=account
self.picture=picture
self.age=age
self.birth=birth
self.location=location
self.city=city
self.hobby=hobby
self.$user.id=userId
}
}发布于 2021-08-19 14:58:49
您只需创建一个字段较少的新结构,然后将结果映射到其中
struct MyCustomResult: Content {
let id: UUID
let name: String
}
func getperinfo(_ req: Request) throws -> EventLoopFuture<[MyCustomResult]>{
let user = try req.auth.require(User.self)
return Info.query(on: req.db).filter(\.$user.$id == user.id!).all().map {
$0.map { MyCustomResult(id: $0.id!, name: $0.name) }
}
}https://stackoverflow.com/questions/68849876
复制相似问题