MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Problem z żądaniem PUT przy użyciu Node.js (express), Angular i MongoDB

Fragment kodu do aktualizacji istniejących nawyków powinien działać dobrze z niewielkimi poprawkami

  1. Gdy działasz z błędem, zawsze używaj return
  2. Zawsze odsyłaj status. W takim przypadku wyślemy 500
  3. Sprawdź, czy nie znaleziono i zwróć 404
  4. Użyj prostego obiektu aktualizacji. Zaktualizuje to tylko pola zawarte w obiekcie aktualizacji
  5. Dokument mongodb zwrócony przez mnicha nie ma funkcji zapisywania, dokument musi zostać zaktualizowany przez kolekcję
  6. Sprawdź, czy żądanie ma treść i wyślij 400 — złe żądanie

Możesz przekazać identyfikator obiektu jako szesnastkowy lub ObjectId do findById jak stwierdzono w dokumentacji Monka .

router.put('/api/habits/:habit_id', function(req, rest){
    var db = req.db;
    var collection = db.get('habits');

    if(!req.body) { return res.send(400); } // 6

    collection.findById(req.params.habit_id, function(e,data){  
        if(e) { return res.send(500, e); } // 1, 2

        if(!data) { return res.send(404); } // 3

        var update = { title : req.body.title, count : req.body.count }; // 4

        collection.updateById(req.params.habit_id, update, function(err) { // 5
            if(err) {
                return res.send(500, err);
            }

            res.json(data);
        });
    });
});

Powyższy kod można jeszcze bardziej uprościć za pomocą findAndModify funkcja mnicha.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDb Jak agregować według miesiąca i roku

  2. Jak skonfigurować AppArmor dla zestawów replik MongoDB?

  3. MongoDB $dateFromParts

  4. Aktualizacja MongoDB()

  5. Zaktualizuj zagnieżdżony element tablicy w mongodb