Как правильно сериализовать данные из mongo?
Есть сервис который сохраняет в монгу user
create(createUserDto: UserCreateDto): Promise<User> {
const userCreated = new this.userModel(createUserDto);
return userCreated.save();
}
после чего возвращает то, что сохранил. Вот я это логирую, все ок:
{
image: 'test6',
bio: 'test6',
lastname: 'test6',
_id: 5f5db0b24167bf636c370798,
name: 'test6',
email: '[email protected]',
password: '$2b$10$K3YLR3GxYUofLBXWrSV96O40eGE7ERak3OnFU6T.Tpl1djEp3qEB2'
}
Я хочу сериализировать юзера, что бы не бы пароля не было в этом объекте, делаю вот так:
const { password, ...userCreatedSerialized } = userCreated;
и возвращаю уже userCreatedSerialized. Но, в userCreatedSerialized уже огромный объект
{
'$__': InternalCache {
strictMode: true,
selected: undefined,
shardval: undefined,
saveError: undefined,
validationError: undefined,
adhocPaths: undefined,
removing: undefined,
inserting: undefined,
saving: undefined,
version: undefined,
getters: {},
_id: 5f5db16bc352c652acdf4138,
populate: undefined,
populated: undefined,
wasPopulated: false,
scope: undefined,
activePaths: StateMachine {
paths: [Object],
states: [Object],
stateNames: [Array]
},
pathsToScopes: {},
cachedRequired: {},
session: null,
'$setCalled': Set { 'name', 'lastname', 'email', 'bio', 'image', 'password' },
ownerDocument: undefined,
fullPath: undefined,
emitter: EventEmitter {
_events: [Object: null prototype] {},
_eventsCount: 0,
_maxListeners: 0,
[Symbol(kCapture)]: false
},
'$options': { defaults: true }
},
isNew: true,
errors: undefined,
'$locals': {},
'$op': null,
_doc: {
image: 'test6',
bio: 'test6',
lastname: 'test6',
_id: 5f5db16bc352c652acdf4138,
name: 'test6',
email: '[email protected]',
password: '$2b$10$UiuihpGO0V0n7/730wB5q.5VfuqUGNcAjPLdTrwuKeNrx6VAbm/0u'
}
}
В котором есть и вложенный объект _doc, который и есть мой юзер. Я не пойму почему после рест операции у меня объект совершенно другой....откуда там берутся все эти поля? Если исходный объект, который я деструктурирую выглядит совершенно иначе.... И как правильно делать сериализацию в таком случае? Ну то есть я могу сделать как-то так
{ _doc: { password, ...userSerialized } } = userCreated;
Хотя typescript мне не позволяет сделать такое...потому что в модели User нет никакого поля _doc И все же откуда берется тьма этих полей после реста, ведь их нет в логе userCreated