2016-09-16 3 views
0

Ich bin neu zu Mongodb und Mungo mit ExpressJS. Es kann eine einfache Frage sein, aber ich habe keinen Erfolg.Mongoose erhalten Sammeldaten, wenn vorhanden das Update sonst einfügen

var BookCounter = new Schema({ 
    counter: {type: Number,}, 
    book: {type: String, min: 18} 
}); 

das ist das mein Schema und das folgende ist das meine Frage:

Ich möchte, dass xyz Buch zu überprüfen, vorhanden ist oder nicht

wenn Buch vorhanden ist

Dann muss ich den Buchzähler um eins updaten.

sonst

Ich habe neues Buch einzufügen.

Können Sie mir bitte helfen ..

Vielen Dank im Voraus :)

Antwort

1

Sie benötigen einen Aktualisierungsvorgang findOneAndUpdate(), die die Optionen upsert verwendet das Dokument zu erstellen, wenn es nicht vorhanden ist und die new Wenn diese Option auf true gesetzt ist, wird das neu erstellte/geänderte Dokument anstelle des Originals neben $set und 012 zurückgegeben Feldaktualisierungsoperatoren.

Das folgende Beispiel zeigt dies:

var query = { "book": "xyz" }, 
    update = { "$inc": { "counter": 1 } }, 
    options = { "upsert": true, "new": true }; 

// Find the document 
Book.findOneAndUpdate(query, update, options, function(err, result) { 
    if (err) handleError(err);  
    else { 
     // do something with the document 
     console.log(JSON.stringify(result, null, 4)); 
    } 
}); 
+1

Dank es funktioniert :) – VRK

Verwandte Themen