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

我有一个代表玩家的猫鼬模型,希望能够获取玩家,并且在选择玩家时,想要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"])

我可以将类上的方法设置为吸气剂吗?


蝴蝶不菲
浏览 159回答 2
2回答

呼如林

您可以为此使用 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);});

缥缈止盈

您可以遵循此代码const player = await PlayerModel       .findOne({_id: playerId})       .select(" +_id +username +isReady)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript