2016-04-19 15 views
0

i bereits durch unten Antworten gegangen: - update multiple records using mongoosejs in nodeUpdate mehr Datensätze Mungo in Knoten mit dynamischer Abfrage mit

Update multiple docs with different values

aber in meinem Fall meine Abfrage dynamisch ist, bedeuten i abfragen müssen, um dynamisch basierend auf Obj, Ich bin auch nicht sicher, ob forEach eine goof Lösung ist Gibt es eine bessere Alternative für das gleiche, wie dies zu viel Zeit in jedem Mal dauert.

 req.body.forEach(function (obj) { 
    myModel.find(
     { 
      country: obj.country, 
      product: obj.product, 
      month: parseInt(obj.month), 

     } 
    ).update({ 
      $set: { 
       value: parseInt(obj.value), 
       'lastmodified': Date.now() 
      } 
     }, 
     { upsert: true}, 
     function (err) { 
      //callback(); 
      if (err) { 
       return res.status(500).send(err); 
      } 
      return res.status(200); 
     } 
    ); 
+0

Ist 'req.body' ein Array oder ein Objekt mit Schlüsselwertpaaren? array.forEJE funktioniert bei Arrays. 'for ... in'-Anweisung iteriert über die aufzählbaren Eigenschaften eines Objekts. Vielleicht, wenn Sie mehr von Ihrem Code mehr Menschen können Ihnen helfen können –

Antwort

0

Sie wissen nicht, ob dies hilfreich ist, aber es sah aus wie Sie das Parsen req.body nicht sicher waren, um die Dokumente zu finden. Dies ist nur Pseudo-Code. Vielleicht wird es dir eine Idee geben.

app.put("/post", function(req, res){ 
    myModel.find({ 
     country : req.body.country, 
     product : req.body.product, 
     month : parseInt(req.body.month) 
    }) 
    myModel.save(function(err, results){ 
     if(err) console.log(err); 
     console.log(results) 
     res.send(results) 
    }) 
}) 
+0

da ich mehrere Objekte in einer Anfrage übergeben, req.body.country wird nicht diese Informationen, das ist der Grund, warum ich "req.body. forEach (function (obj) {") um jedes Objekt zu analysieren – Manish