簡體   English   中英

使用Typescript從Mongoose模型訪問文檔屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM