2017-06-19 3 views
0

Ich habe eine Restful API mit Node/Express und Mongo geschrieben. Ich muss einen Endpunkt codieren, bei dem ich, wenn eine E-Mail-Adresse für einen Benutzer existiert, den Datensatz aktualisiere. Wenn dies nicht der Fall ist, muss ich einen neuen Datensatz erstellen.Update-Datensatz, wenn existiert noch Post in Knoten/Express-App

Ich bin nicht sicher, wie dies zu tun ...

verwende ich einen Beitrag oder Put-Methode?

+0

Nach den Dokumenten, PUT ist entweder zu aktualisieren oder erstellen Sie eine Ressource, während POST, nur zu erstellen ist. Um zu antworten, sollten Sie einen PUT für Ihr Problem verwenden – franckstifler

+0

Danke franckstifler! Ist das alles, was ich tun muss, ist meine Post zu .put zu ändern? Welche Dokumente sehen Sie an? – cnak2

+0

Es sollte darauf hingewiesen werden, dass es nur eine Konvention ist, und entweder 'POST' oder' PUT' funktionieren. Um zu erstellen oder zu aktualisieren, abhängig davon, ob der Datensatz bereits existiert, sollten Sie die upsert-Funktionalität von mongo verwenden, siehe hier: https://docs.mongodb.com/manual/reference/method/db.collection.update/. – Kevin

Antwort

1

Eine Möglichkeit, die konzeptionell einfachste ist, ist eine find Abfrage und Begrenzung auf 1 zu machen, wenn Sie etwas und nicht haben null finden, dann tun x, anderes tun y. Sie hätten also eine if-Anweisung in diesem Ansatz. Das ist gut, wenn Sie nur ein einzelnes Feld haben, das Sie überprüfen.

Eine andere Möglichkeit besteht darin, den Operator $exists zu verwenden, um die richtigen Datensätze zu erhalten. Für Datensätze, bei denen die E-Mail-Adresse null ist, geben Sie einfach $exists: null für das E-Mail-Feld ein. Weitere Informationen here. Dies ist nützlich, wenn Sie mehr als ein Feld überprüfen.

Hoffe, dass hilft.

+0

Wirklich nicht sehen, wie dies sein Problem beantwortet. – franckstifler

+0

@franckstifler gut er sagte, er war nicht sicher, wie das geht. Sie haben die Frage PUT/POST beantwortet, ich habe dem Rest eine Übersicht gegeben –

Verwandte Themen