Ich möchte ein neues Dokument erstellen, wenn es nicht existiert und das neue Dokument zurückgeben, wenn das Dokument bereits erstellt wurde existiert Ich möchte, dass eine Ausnahme ausgelöst wird.Wie man ein neues Dokument 'wenn nicht existiert' erstellt und das neue Dokument mit MongoDB NodeJS nativem Treiber zurückgibt
Ich denke, die Art, wie ich das tue, scheint hackisch, gibt es ein besseres Mittel, dies zu tun?
var query = { name: 'guaranteed to be unique' }
var new_doc = { ... }
var col = // the Mongo collection we're using
col.updateOne(
query,
new_doc,
{upsert: true}
)
.then(update => col.findOne({_id, update.result.upserted.pop()._id}))
.then(doc => console.log(doc))
.catch(exception => console.log('that already exists'))
Hängt, wenn Sie es wollen, aktualisieren, wenn es vorhanden ist gefunden? Wenn ja, könntest du 'upsert: true}' on 'update' verwenden. Sonst hast du es richtig gemacht. –
Warum haben Sie keinen eindeutigen Index für 'name'? – robertklep
@robertklep, könnten Sie erklären, wie ein eindeutiger Index das lösen würde? – MatUtter