[英]Access document properties from a Mongoose Model using Typescript
我將Mongoose與Typescript一起使用,並希望從Model中訪問屬性。 給定此示例UserModel
import mongoose, { Schema } from 'mongoose';
const userSchema: Schema = new mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
username: {
type: String,
required: true,
unique: true,
},
});
export const UserModel = mongoose.model('User', userSchema);
我要在獲取用戶后訪問用戶名
const user: Document | null = await UserModel.findById(id);
const username: string = (user as Document).username;
但由於Document
是一個接口,因此我無法從UserModel訪問該屬性。 我該如何訪問?
我建議您像這樣為User
創建一個界面:
export interface IUserDocument extends mongoose.Document {
username: string;
}
之后,您可以使用以下內容定義模型:
export const UserModel = mongoose.model<IUserDocument>('User', userSchema);
如果隨后獲得IUserDocument
,則可以像下面這樣輕松地訪問找到的文檔上的username屬性:
const user: IUserDocument | null = await UserModel.findById(id);
const username: string = user.username;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.