나는 몽고 DB와 몽구스로 익스프레스 js API를 개발 중이다.es6 스프레드 연산자 - 몽구스 결과 복사본
내가 몇 가지 변수로 구성된 자바 스크립트 ES6의 객체와 몽구스 요청의 결과를 만들고 ES6 확산 연산자 그렇게 할 싶습니다 :
MyModel.findOne({_id: id}, (error, result) => {
if (!error) {
const newObject = {...result, toto: "toto"};
}
});
문제는 그 스프레드 연산자를 적용 결과은 이상한 방식으로 변환 : 난 그렇게하기 전에 CONSOLE.LOG 때
newObject: {
$__: {
$options: true,
activePaths: {...},
emitter: {...},
getters: {...},
...
_id: "edh5684dezd..."
}
$init: true,
isNew: false,
toto: "toto",
_doc: {
_id: "edh5684dezd...",
oneFieldOfMyModel: "tata",
anotherFieldOfMyModel: 42,
...
}
}
나는 종류의 개체 결과가 그것으로 특정 상호 작용을 허용하는 몽구스에 의해 강화되는 것을 이해하지만, 그 모든 것들이없는 단순한 물체를 묘사합니다.
... result._doc 나는이 부분을 추상화하고 그런 식으로 적합하지 않기 때문에 속임수에 넣고 싶지 않습니다. 어쩌면 에릭 같은 물건없이 물건을 복사하는 방법이 있을지도 모른다.
감사합니다.
'toString' 메소드를 살펴 보겠습니다. 그대가 console.log의 내용을 보게된다. –
결과에'toString'을 쓰면 내 필드 만있는 단순한 객체가 반환되므로 객체가 정상적인 것처럼 보이지만 객체 구조를 변경하는 스프레드 연산자를 사용하려고 할 때이다. 'Object.assign()'와 완전히 같습니다. –
그래, 그럼'console.log (result.toString)'할 일이 어떻게 보일까 ... –