2016-05-13 4 views
0

Methode in Modell Aufnahme von zu:Mungo findByIdAndUpdate, nicht Dokument zu aktualisieren, scheint richtigen Parameter

DistillerSchema.methods.update = function(o, u, cb){ 
    this.model.findByIdAndUpdate(o, u, cb); 
}; 

Controller:

exports.update = function(req, res){ 
    console.log('Bodddyyy!!!!!!!', req.body); 
    console.log('params', req.params); 
    Distiller.update(req.body._id, req.body, function(err, distiller){ 
    console.log('update!!!!', distiller); 
    res.send({distiller:distiller}); 
    }); 
}; 

console.log:

Bodddyyy!!!!!!! { _id: '573592584435639d18242d3c', 
    name: 'chewbacca333333', 
    email: '[email protected]', 
    photo: 'https://s3.amazonaws.com/whiskey-upload/distillers/9ec98f42-7d43-4be9-a372-2a0e90cd4f30', 
    __v: 0, 
    social: 
    { facebook: 'https://www.facebook.com', 
    twitter: 'https://www.facebook.com', 
    instagram: 'https://www.facebook.com' }, 
    whiskeys: [], 
    location: [], 
    timestamp: '2016-05-13T08:37:44.257Z' } 
params { id: '573592584435639d18242d3c' } 
update!!!! { ok: 0, n: 0, nModified: 0 } 

Ich bin nicht sicher, was falsch ist. Ich gebe alle korrekten Daten von der Client-Seite ein, und gemäß der Mungo-Dokumentation fühle ich, dass ich die richtigen Parameter übergebe.

Es hält Rückkehr: {ok: 0, n: 0, nModified: 0}

Vielleicht etwas mit, wie ich die Methode im Modell haben?

+1

Es scheint eine schlechte Idee zu sein, zu versuchen, Ihre eigene 'update' Methode für das Schema zu definieren. Versuchen Sie, dieser Methode einen anderen Namen zu geben. – JohnnyHK

+0

Ich dachte nur das Gleiche. Scheint so, als gäbe es einen Konflikt. – NoobSter

+0

zusätzlich sollte es eine statische Methode gewesen sein. Ich muss mehr auf die Konzepte von statischen/Methoden eingehen. – NoobSter

Antwort

1

Ich denke, wie über Kommentar erwähnt, scheinen die Namen & Sie Methodentyp wechseln müssen in Konflikt werden.

+0

Danke. Ich habe gewartet, um zu sehen, ob @johnnyHK eine Antwort einreichen würde. Aber das hat mein Problem gelöst. – NoobSter

0

Sie sollten anrufen: req.body._id oder req.params.id.

Aber Sie anrufen req.body.id

+0

Guter Fang. Ich habe vergessen, es zurück zu ändern. Ich hatte es zunächst bei req.body._id, dann hatte ich versucht, es während des Debuggens in req.params.id zu ändern, was zu einem Tippfehler führte. Ich habe sichergestellt, dass es auf den richtigen ID-Wert zeigt, aber immer noch den gleichen Fehler. – NoobSter

Verwandte Themen