【问题标题】:Access document properties from a Mongoose Model using Typescript使用 Typescript 从 Mongoose 模型访问文档属性
【发布时间】:2020-01-18 11:46:56
【问题描述】:

我将 Mongoose 与 Typescript 一起使用,并希望从模型中访问属性。鉴于此示例 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 访问该属性。如何访问它?

【问题讨论】:

    标签: javascript node.js mongodb typescript mongoose


    【解决方案1】:

    我建议您为您的User 创建一个界面,如下所示:

    export interface IUserDocument extends mongoose.Document {
        username: string;
    }
    

    之后,您可以使用以下内容定义您的模型:

    export const UserModel = mongoose.model<IUserDocument>('User', userSchema);
    

    如果您随后获得IUserDocument,您可以轻松访问找到的文档上的用户名属性,如下所示:

    const user: IUserDocument | null = await UserModel.findById(id);
    const username: string = user.username;
    

    【讨论】:

      猜你喜欢
      • 2016-05-13
      • 2020-05-07
      • 2014-02-09
      • 1970-01-01
      • 2019-04-04
      • 1970-01-01
      • 1970-01-01
      • 2019-03-10
      • 2019-05-27
      相关资源
      最近更新 更多