2016-07-29 4 views
0

업데이트 할 필드가 숫자 형식 인 특정 레코드에 간단한 upsert 작업을 수행하려고합니다. 나는 그것의 레코드 ID, 단지 한 숫자 필드를 사용하여 기록을 가져오고 다시 저장하지만, 어떤 이유로 늘 증가/업데이트강력한 루프를 사용하여 간단한 몽고 개체 업 그레 이드

코드는 로그에서 본 :

customer.findById(customerObject.id, function(err, objectResult){ 

    console.log(objectResult.imageIndex); 

    if(!objectResult.imageIndex){ 
     objectResult.imageIndex = 1; 
    } 
    else{ 
     var index = objectResult.imageIndex; 
     objectResult.imageIndex = index++; 
     console.log(objectResult.imageIndex); 
    } 

    customer.upsert(objectResult, function(err, response){}); 
}) 

두 console.log 같은 값을 표시합니다 .. 왜 늘리면 안돼요, 코드와 함께 어떤 문제가 업데이 트?

+0

당신이 무엇을 얻을 수 있습니까 '

이 중 하나를해야 하는가? –

+0

인쇄물 '번호' – Firdous

답변

1

문제는 문입니다 : 인덱스 ++ 먼저 할당을 수행하고 인덱스의 값을 증가 때문에

objectResult.imageIndex = index++; 

이입니다. 당신은`대해서 typeof (objectResult.imageIndex)에 로그인 할 때

objectResult.imageIndex = ++index; 

또는

objectResult.imageIndex = index + 1; 
+1

멋진 캐치! 나는 너무 질문을 게시 한 직후에 그것을 잡았다. :) – Firdous

관련 문제