2017-10-01 2 views
0

Im unten stehenden Code möchte ich die sekundäre Telefonnummer nur dann aktualisieren, wenn die 10-stellige Nummer aus dem Web-Formular übergeben wird. Ich möchte die Telefonnummer bereits während der Einfügeoperation in die sekundäre Telefonnummer einfügen.So fügen Sie Bedingungen bei der Aktualisierung von mongodb hinzu

Kann mir jemand helfen, den folgenden Code zu korrigieren, um eine bedingte Db-Aktualisierung zu erreichen?

hotelModel.findOneAndUpdate({ "name": req.body['hotelName'], "contact.postalCode": parseInt(req.body['postalCode']) }, 
     { 
     $set: { 

      "contact.primaryContactNumber" : parseInt(req.body['primaryContactNumber']), 
      if (req.body['secondaryContactNumber'].toString().trim().length == 10) { 
        "hotelSchema.contact.secondaryContactNumber: : parseInt(req.body['secondaryContactNumber']) 
      }else{ 
       "contact.primaryContactNumber" : //How to add existing Secondary phone number? 
      }   

     } 
    }, { new: true }, 
    function (err, doc) {} 
+0

Ich verstehe nicht ganz. Was möchten Sie tun, wenn der Benutzer keine gültige Nummer eingibt? Sie sagen: "Sonst würde ich gerne die Telefonnummer verwenden, die während der Einfügeoperation bereits in die sekundäre Telefonnummer eingefügt wurde", aber das klingt, als wäre "contact.secondaryContactNumber" bereits vorhanden und es wäre nicht nötig, etwas zu ändern. –

+0

Lassen Sie mich meine Frage einfach machen. Wie überspringe ich die Aktualisierung von secondaryContactNumber, wenn req.body ['secondaryContactNumber'] als Null von Web ui übergeben wird.In GUI secondaryContactNumber ist ein optionales Feld.Es ist ein Benutzer, ob er will um es zu aktualisieren oder nicht.So muss ich die Update-Logik in einer Weise schreiben, dass, wenn Benutzer sekundäre Telefonnummer in GUI zur Verfügung gestellt hat dann aktualisieren Sie es sonst einfach überspringen die sekundäre Telefonnummer updation.Hope dies klärt Ihre Abfrage –

Antwort

0

Wenn ich richtig verstehe, wollen Sie contact.secondaryContactNumber aktualisieren, wenn der Benutzer eine gültige Telefonnummer zur Verfügung gestellt hat, sonst Sie contact.secondaryContactNumber unverändert sein wollen. Wenn ja, entfernen Sie einfach die else Klausel. Sie müssen es nicht explizit dazu auffordern, etwas zu tun, weil es standardmäßig nichts tut, und das ist es, was Sie wollen.

hotelModel.findOneAndUpdate({ "name": req.body['hotelName'], "contact.postalCode": parseInt(req.body['postalCode']) }, 
     { 
     $set: { 

      "contact.primaryContactNumber" : parseInt(req.body['primaryContactNumber']), 
      if (req.body['secondaryContactNumber'].toString().trim().length == 10) { 
        "hotelSchema.contact.secondaryContactNumber: : parseInt(req.body['secondaryContactNumber']) 
      }  
     } 
    }, { new: true }, 
    function (err, doc) {} 
+0

if (req. body ['secondaryContactNumber']. toString(). trim(). length == 10) {gibt mir einen Syntaxfehler. –

+0

Was ist der gesamte Fehler? –

Verwandte Themen