节点猫鼬打字稿如何输入 type: ObjectId, ref: 'User'

Posted

技术标签:

【中文标题】节点猫鼬打字稿如何输入 type: ObjectId, ref: \'User\'【英文标题】:Node mongoose typescript how to type type: ObjectId, ref: 'User' 节点猫鼬打字稿如何输入 type: ObjectId, ref: 'User' 【发布时间】:2020-11-08 05:06:29 【问题描述】:

我正在使用带有 typescript 的猫鼬 关注这个https://medium.com/@agentwhs/complete-guide-for-typescript-for-mongoose-for-node-js-8cc0a7e470c1

我不知道怎么打字

以下内容:[ type: ObjectId, ref: 'User' ],

请给我一个提示好吗?

【问题讨论】:

【参考方案1】:

所以基本上,您在 mongoose 模式中定义的内容只是为了让 mongoose 理解和键入脚本并不关心它。如果您在检索记录时填充following,您的界面将为following: User[],否则它将是一个字符串数组string[]

【讨论】:

【参考方案2】:

当使用 mongoose 和 typescript 的定义类型时,您必须创建一个接口或类型,例如

import Document from "mongoose"

type UserType=
 username:String,
 _doc:any
 &Document

//或者

interface IUser extends Document
 username:String,
 _doc:any
 

_doc 用于在查询重组时获取对象主体的主体 假设您有一个博客,并且有一个用户是作者,我们如何映射它?

type BlogType=
    title:
    type:String,
    required:true
 ,
author:
   type:ShemaTypes.ObjectId,
   ref:'User',
   required:true,
,
 comments:
    type:[

    user:ShemaTypes.ObjectId,
    content:String,

  ]
&Document

使用 ref 可以很容易地查询另一个表作为引用 Object Id 的表的连接 使用数组时,您只需定义要存储在 type 属性中的数据结构

【讨论】:

以上是关于节点猫鼬打字稿如何输入 type: ObjectId, ref: 'User'的主要内容,如果未能解决你的问题,请参考以下文章

使用带有打字稿的猫鼬创建自定义验证时出错

打字稿模型添加猫鼬身份验证

打字稿和猫鼬:“文档”类型上不存在属性“x”

如何使用打字稿定义猫鼬模式参考字段?

如何在打字稿中的猫鼬userschema.methods中使用“this”

使用猫鼬模型设置打字稿