diff --git a/package.json b/package.json index ada8b6fa7..834becb6b 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "lodash": "^4.17.20", "moment": "^2.27.0", "mongoose": "^5.10.4", + "mongoose-lean-getters": "^0.1.2", "mongoose-lean-virtuals": "^0.7.6", "mongoose-transactions": "^1.1.4", "underscore": "^1.12.0" diff --git a/shared/db/BaseModel.ts b/shared/db/BaseModel.ts index 3724fe95e..ec9a6b90e 100644 --- a/shared/db/BaseModel.ts +++ b/shared/db/BaseModel.ts @@ -1,6 +1,7 @@ import { prop, pre, modelOptions, plugin } from '@typegoose/typegoose'; import { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses'; -import mongooseLeanVirtuals = require('mongoose-lean-virtuals'); +const mongooseLeanVirtuals = require('mongoose-lean-virtuals'); +const mongooseLeanGetters = require('mongoose-lean-getters'); /** * BaseModel @@ -17,6 +18,7 @@ import mongooseLeanVirtuals = require('mongoose-lean-virtuals'); @modelOptions({schemaOptions: {id: false}}) @plugin(mongooseLeanVirtuals) +@plugin(mongooseLeanGetters) export default class BaseModel extends TimeStamps { _id?: string diff --git a/shared/db/Role.ts b/shared/db/Role.ts index d533fda88..fb2121ea4 100644 --- a/shared/db/Role.ts +++ b/shared/db/Role.ts @@ -227,10 +227,10 @@ export default class Role extends BaseModel { * 根据roleId获取一条数据 * @param roleId 玩家id * @param select 选取字段,来自 selectConst/ROLE - * @param virtuals 是否使用虚拟字段,如ce使用了自动缩小1w倍 + * @param getters 是否使用get方法,如ce使用了自动缩小1w倍 */ - public static async findByRoleId(roleId: string, select?: string, virtuals = false) { - const role: RoleType = await RoleModel.findOne({ roleId }).select(select).lean({virtuals}); + public static async findByRoleId(roleId: string, select?: string, getters = false) { + const role: RoleType = await RoleModel.findOne({ roleId }).select(select).lean({getters}); return role; } @@ -439,7 +439,7 @@ export default class Role extends BaseModel { const result = await RoleModel.find({ quitTime: { $gt: time }, lv: { $gte: minLv, $lte: maxLv } }, { _id: 0 }) .select(ROLE.SHOW_SIMPLE) .sort({quitTime: -1, lv: -1, ce: -1}) - .limit(100).lean({ virtuals: true }); + .limit(100).lean({ getters: true }); return result; }