결국 오늘이 되서야..
정말 많은 시간과 안구 건조증이 함께 했다.
저번주에 끝끝내 해결하지 못한 문제를 오늘 해결(?)하게 되었다. 엄밀히 말하면 해결보단 자연스레 알게 되었다. 스택오버플로우에서 내가 눌렀던 게시물 중에서도 있었지만 채택된 답변 위주로 봐서 그런지 찾아내서 적용하지 못했다.
ObjectId
Type을 활용하여_id
필드 값의 이름 변경을 원하였는데 해결을 하지 못했었다.해결책!
// Duplicate the ID field. Schema.virtual('userId').get(function(){ return this._id.toHexString(); }); // Ensure virtual fields are serialised. Schema.set('toJSON', { virtuals: true });
위 코드와 같이
virtual
함수를 활용하여_id
의 값을toHexString
화 하여userId
란 임의로 정해준 필드에 저장해준다. 그리고 아래 바로 해당스키마(Schema)
에서 생성한 모델에서toJSON
이 호출될 때마다 Mongo가 생성하는_id
필드와 일치하는userId
필드가 포함되어 아래 사진과 같이 개발자환경에서 나타난다. 마찬가지로 동일한 방식으로toObject
에 대한 동작을 설정할 수 있다.
각각의 Schema에서 똑같이_id
로 추출되기 때문에 고유한 필드네임이 필요해서 찾게 되었고 결국에 이렇게 잘나온다 ㅜ 허무했지만서도 결국엔 4일이라는 시간동안 맘을 놓을 수 없었던 나에게 좀 대견하다고 칭찬하고 싶다.스스로의 힘으로 빠르게 찾아낼 수 없었던..
한 가지 아쉬웠던 것은 해당 게시물(해결책)을 문제점을 인식하고 바로 접속을 하긴 했었다는 것이다. 하지만 내 코드에 적용해보지는 못했다. 아직 코드 작성과 구조에 익숙지 않아서 였던것으로 위로를 건네본다..
자료를 찾는 것에는 좋은 검색어가 그만큼 필요하고 영어를 좀 더 정확히 자세히 읽어봐야 할 것 같다. 영어공부를 게을리 하지말자. 문서를 계속 읽어보고 겁내지 않고 적용해보는 좋은 습관을 기르자.