diff --git a/shared/db/User.ts b/shared/db/User.ts index 607236d8d..8d6e5b2a5 100644 --- a/shared/db/User.ts +++ b/shared/db/User.ts @@ -133,8 +133,9 @@ export default class User extends BaseModel { update = Object.assign(update, doc.toJSON(), { platform, pkgName, serverType, createTime: curTime, uid, userCode, username: `用户${uid}`, isGuest, token, lastLoginTime: curTime, guestTime, ip, deviceId }); if (isGuest) update["guestId"] = _tel; delete update["device"]; + delete update["_id"]; - const user: UserType = await UserModel.findOneAndUpdate({ tel }, { $set: update, $addToSet: { device: deviceId } }, { upsert: true, new: true }).lean({ getters: true }); + const user: UserType = await UserModel.findOneAndUpdate({ tel }, { $setOnInsert: update, $addToSet: { device: deviceId } }, { upsert: true, new: true }).lean({ getters: true }); return user; } @@ -147,8 +148,9 @@ export default class User extends BaseModel { let update = {}; update = Object.assign(update, doc.toJSON(), { platform, pkgName, serverType, createTime: curTime, uid, userCode, username: `用户${uid}`, token, lastLoginTime: curTime, ip, channelInfo, channelType, deviceId }); delete update["device"]; + delete update["_id"]; - const user: UserType = await UserModel.findOneAndUpdate({ channelId }, { $set: update, $addToSet: { device: deviceId } }, { upsert: true, new: true }).lean({ getters: true }); + const user: UserType = await UserModel.findOneAndUpdate({ channelId }, { $setOnInsert: update, $addToSet: { device: deviceId } }, { upsert: true, new: true }).lean({ getters: true }); return user; }