我正在使用MongoDB和Mongoose结合打字稿。我的问题如下:
我已经定义了一个这样的模型:
export default conn.model<AdminInterface & Document>('Admin', adminSchema)
export interface AdminInterface {
email: string,
password: string,
role: string,
created: Date,
author: {
name: string,
bio: string,
githubUrl: string,
stackoverflowLink: string,
twitterLink: string,
image: string,
image_webp: string,
},
}
它不会抛出错误。
现在我想做一个简单的查询,例如:
import { AdminInterface } from "../model/admin"
export function getAdmin(): Promise<AdminInterface | null> {
return Admin.findOne({ role: 'admin' }, { password: 0 })
}
但是它抛出了我这个错误:
类型'DocumentQuery
'缺少类型'AdminInterface'中的以下属性:电子邮件,密码,角色,创建者,作者
我做错了什么?我该如何告诉.findOne
方法我的回复是什么样?
答案 0 :(得分:1)
好的,这是解决方法。
我必须在末尾添加.exec()
,错误消失了:
import { AdminInterface } from "../model/admin"
export function getAdmin(): Promise<AdminInterface | null> {
return Admin.findOne({ role: 'admin' }, { password: 0 }).exec()
}
我不知道这是不是要走的路。但是我会这样使用它