wake-up-neo.net

Speichern oder Aktualisieren von Mungo

Gibt es eine gute Möglichkeit, ein Dokument in mongoose zu speichern oder zu aktualisieren? So etwas wie ich bin unten

 let campaign = new Campaign({
        title: req.body.title,
        market: req.body.market,
        logo: req.body.logo,
        additional_question_information: question,
        status: status
    });

 campaign.saveOrUpdate().then(function() { ... }

Danke für die Hilfe alle

5
Ollie

Ich denke, was Sie suchen, wird als "Aufwärtstrend" bezeichnet.

Sie können dies tun, indem Sie findOneAndUpdate verwenden und die Option {upsert: true} übergeben, etwa das folgende Beispiel: 

let campaign = new Campaign({
        title: req.body.title,
        market: req.body.market,
        logo: req.body.logo,
        additional_question_information: question,
        status: status
    });

Campaign.findOneAndUpdate({
    _id: mongoose.Types.ObjectId('CAMPAIGN ID TO SEARCH FOR')
}, campaign, { upsert: true }, function(err, res) {
    // Deal with the response data/error
});

Der erste Parameter für findOneAndUpdate ist die Abfrage, die verwendet wird, um festzustellen, ob Sie ein neues Dokument speichern oder ein vorhandenes aktualisieren. Wenn Sie das geänderte Dokument in den Antwortdaten zurückgeben möchten, können Sie auch die Option { new: true } hinzufügen.

Dokumentation hier für findOneAndUpdate: http://mongoosejs.com/docs/api.html#model_Model.findOneAndUpdate

12
CD-jS

Sie können die Funktion findAndModify der MongoDB verwenden. In moose wird dies durch Aufruf von findOneAndUpdate () nativ unterstützt. Hier ist die Dokumentation dafür. http://mongoosejs.com/docs/api.html#query_Query-findOneAndUpdate Beachten Sie, dass im dritten Argument erwartet wird, dass ein Objekt mit Optionen übergeben wird. Sie möchten dort { upsert : true } verwenden, um ein neues Dokument zu erstellen, falls noch kein Dokument vorhanden ist.

0
itsundefined