2016-06-12 4 views
1

node.js의 new 키워드에 대해 잘 모르겠습니다. 저는 기본적으로 스키마의 인스턴스를 생성한다는 것을 알고 있습니다. 하지만 업데이트를 할 때 new을 신고 할 필요가없는 이유는 무엇입니까? 그래서 내 질문은 여기에 new을 사용하는 것입니다.mongodb에서 새 키워드를 사용하는 경우?

var User = module.exports = mongoose.model('tokens', userSchema); 
//route endpoint here 
.. 
new User({user: user_id, data: data}).save(callback); 

위 코드에서 new를 사용하지 않으면 어떻게됩니까? 코드의 흐름은 이해하지 못하더라도 말이죠. 내가 틀렸다면 고쳐주세요, 고마워요.

+0

새로운 기능 소개 [이] (http://stackoverflow.com/a/3658673/2607571)를 읽으십시오. 나는이 경우 new가 필요하고 실제로 무엇을하는지 전혀 모른다. (하지만 나는 상속 관련 무언가를 의심한다) –

답변

0

new 새 엔티티를 작성해야하는 경우 키워드가 필요합니다.

DB에 새 사용자를 만들고 싶다고 가정 해 보겠습니다. 다음과 같이 할 수 있습니다 : const user = new User({user: id, data}) 그런 다음 두 가지 옵션이 있습니다. 사용자 개체를 저장하기 전에 변형하거나 user.save()을 사용하여 즉시 저장할 수 있습니다. 이처럼

:

const user = new User({user: id, data}) 
user.age = 21; 
user.save(); 

당신이 때때로 당신이 그것을 만들 때 DB에서 엔티티를 저장하지 않으 알 연습에. 때로는 DB에 삽입하기 전에 DB로 일부 조작을 수행하려고합니다.

왜 업데이트를 수행하기 전에 new 키워드를 사용하지 않아도되는지에 관한 질문.

업데이트를 수행하려면 먼저 DB에서 기존 문서를 검색해야합니다. User.find({id: 'someid'});이 경우 몽구스는 새로운 개체를 생성합니다. User.find가 새 개체를 반환합니다. 이미 DB에 있기 때문에 업데이트 할 수 있습니다.

0

기본적으로 내 스키마의 인스턴스를 만듭니다.

사실, 코드의 첫 번째 줄에 당신이 스키마를 사용하는 모델을 만드는 (인스턴스가 아닌). 마지막 라인에서 모델 (예 : document)의 인스턴스를 생성하고 있습니다.

하지만 업데이트 할 때 new을 신고 할 필요가없는 이유는 무엇입니까?

당신은 반드시 당신이 DB는 통화를 할 수 있지만, 몇 가지 혜택 (마지막 링크 참조)

것은 내가 위에서 새로운 사용하지 않는 경우가 있습니다 새로운마다 사용할 필요가 없습니다

코드는 어떻게됩니까?

같은 일이 발생합니다.

그래서 내 질문은 여기에서 새로운 것을 사용하는 것입니다.

A good answer to your question. 데이터베이스에 행을 실제로 만들 때 (즉, 새 사용자를 만들 때) 문서를 만들도록 선택합니다. 검색 (예 :) (findOne, findById) 모델을 사용합니다.이것은 내 코드가 의미 론적으로 분리되도록 도와줍니다.

+0

같은 일이 일어날 것인가? 위의 경우에 '새로운 것'의 요점은 무엇입니까? 당신이 준 링크에 따라 아무 것도 검증 할 필요가 없습니다. –

관련 문제