我有一个代表玩家的猫鼬模型,希望能够获取玩家,并且在选择玩家时,想要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);
});
缥缈止盈
TA贡献2041条经验 获得超4个赞
您可以遵循此代码
const player = await PlayerModel
.findOne({_id: playerId})
.select(" +_id +username +isReady)添加回答
举报
0/150
提交
取消
