2016-07-29 6 views
0

Ich versuche, eine einfache Upsert-Operation für einen bestimmten Datensatz, bei dem das Feld zu aktualisieren ist ein Zahlentyp. Ich hole den Rekord seines Rekord-ID verwenden, nur 1 das Nummernfeld und speichern Sie es wieder, aber aus irgendeinem Grunde wird es nicht Schritt/update wie aus dem ProtokollEinfache Mongo-Objekt-Upsert mit Strongloop

Der Code gesehen ist:

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){}); 
}) 

Sowohl die console.log würde den gleichen Wert anzeigen .. warum wird es nicht erhöhen und aktualisieren, etwas falsch mit dem Code?

+0

Was bekommen Sie, wenn Sie 'typeof (objectResult.imageIndex) log '? –

+0

seine Drucke 'Nummer' – Firdous

Antwort

1

Das Problem ist mit der Aussage:

objectResult.imageIndex = index++; 

Dies liegt daran, Index ++ die Zuordnung tut und dann erhöht den Wert des Index.

Es sollte entweder:

objectResult.imageIndex = ++index; 

oder

objectResult.imageIndex = index + 1; 
+1

Netter Fang! Ich fing es gerade nach dem Posten der Frage :) – Firdous

Verwandte Themen