为了账号安全,请及时绑定邮箱和手机立即绑定

如何在select方法中调用mongoose方法

如何在select方法中调用mongoose方法

蝴蝶不菲 2022-06-16 10:21:13
我有一个代表玩家的猫鼬模型,希望能够获取玩家,并且在选择玩家时,想要isReady像 getter 一样调用。该模型如下所示:const PlayerSchema = new Schema({  user: { type: Schema.Types.ObjectId, ref: "User" },  famousPerson: { type: String }})PlayerSchema.methods.isReady = function (cb) {  return Boolean(this.famousPerson)}我希望能够这样称呼它:const player = await PlayerModel      .findOne({_id: playerId})      .select(["_id", "username", "isReady"])我可以将类上的方法设置为吸气剂吗?
查看完整描述

2 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

您可以为此使用 mongoose virtuals,但要按预期工作,您需要配置架构以便它可以返回 virtuals,因为默认情况下不会包含 virtuals。


const PlayerSchema = new Schema(

  {

    famousPerson: { type: String },

  },

  {

    toJSON: { virtuals: true },

    toObject: { virtuals: true },

  }

);


PlayerSchema.virtual("isReady").get(function () {

  return Boolean(this.famousPerson);

});


查看完整回答
反对 回复 2022-06-16
?
缥缈止盈

TA贡献2041条经验 获得超4个赞

您可以遵循此代码

const player = await PlayerModel
      .findOne({_id: playerId})
      .select(" +_id +username +isReady)


查看完整回答
反对 回复 2022-06-16
  • 2 回答
  • 0 关注
  • 158 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号