Spring MongoDB: Prüfen ob bereits eine Email existiert

httpdigest

Top Contributor
Was meinst du mit "Prüfen, ob eine E-Mail Adresse existiert"?
Das kannst du nicht prüfen, ohne nicht zumindest eine E-Mail an den möglichen Empfänger zu senden und eine Zustellungs-Fehlermeldung zu bekommen.

Du meinst vermutlich, dass du prüfen möchtest, ob ein Document in einer MongoDB Collection bereits existiert, dessen "email" (oder ähnlich) Property einen von dir gesuchten Wert besitzt.
 

TM69

Bekanntes Mitglied
Was meinst du mit "Prüfen, ob eine E-Mail Adresse existiert"?
Das kannst du nicht prüfen, ohne nicht zumindest eine E-Mail an den möglichen Empfänger zu senden und eine Zustellungs-Fehlermeldung zu bekommen.

Du meinst vermutlich, dass du prüfen möchtest, ob ein Document in einer MongoDB Collection bereits existiert, dessen "email" (oder ähnlich) Property einen von dir gesuchten Wert besitzt.
Ich meinte mit prüfen, dass herausfinden ob, unabhängig von der Groß/Kleinschreibung existiert.

Also durch folgendes müsste true ergeben

Vergleichswert = Document
email@email.com = email@email.com ----> true, beide sind identisch
Email@email.com = email@email.com ----> true, beide sind identisch
eMail@EMail.com = email@email.com ----> true, beide sind identisch

Denn findByEmail aus dem Spring MongoDB Repository würde folgendes liefern
email@email.com = email@email.com ----> true, beide sind identisch
Email@email.com = email@email.com ----> false, nicht identisch
eMail@EMail.com = email@email.com ----> true, nicht identisch
 
Zuletzt bearbeitet:

httpdigest

Top Contributor
Üblicherweise stellt man beim Schreiben sicher, dass nur die kanonische/Kleinform geschrieben wird. Und beim Suchen suchst du auch explizit nur nach der Kleinform. Also bei Insert und Search machst du vorher address.toLowerCase().
 

TM69

Bekanntes Mitglied
Üblicherweise stellt man beim Schreiben sicher, dass nur die kanonische/Kleinform geschrieben wird. Und beim Suchen suchst du auch explizit nur nach der Kleinform. Also bei Insert und Search machst du vorher address.toLowerCase().
"Problematisch" wirds dann wenn man für den Endanwender eine Eingabemaske baut.
Beispiel: Benutzer gibt ein "EMail@email.com" und wundert sich, wenn er sich den Benutzer ansieht sich anschliessend wundert, dass dort "email@email.com" steht und nicht "EMail@email.com".

Ansonsten würde ich dir Recht geben.
 

httpdigest

Top Contributor
Dann leg zwei Spalten/Properties/Felder an. Einmal mit dem Anzeigenamen, so wie es der Benutzer eingegeben hat und eine "Key"-Spalte, die die kanonische Form beinhaltet.
 

httpdigest

Top Contributor
Wenn wir von NoSQL Datenbanken wie MongoDB reden, ist "Normalisierung" sowieso ausm Fenster. :)
NoSQL Datenbanken sind keine relationalen Datenbanken und gehen davon aus, dass das Datenmodell dem Abfrageverhalten entspricht und nicht einem normalisierten relationalen Modell, welches per Joins in die Form von Abfrageergebnissen gebracht werden kann.
 

TM69

Bekanntes Mitglied
Wenn wir von NoSQL Datenbanken wie MongoDB reden, ist "Normalisierung" sowieso ausm Fenster. :)
NoSQL Datenbanken sind keine relationalen Datenbanken und gehen davon aus, dass das Datenmodell dem Abfrageverhalten entspricht und nicht einem normalisierten relationalen Modell, welches per Joins in die Form von Abfrageergebnissen gebracht werden kann.
Da gebe ich dir bedingt Recht, aber wieso zweimal Email speichern, wenn es durch SQL (Springspezifisch) durch eine LIKE erledigt werden können?
Nachtrag von einem Join war bist jetzt nocht nicht die Rede :)
 

TM69

Bekanntes Mitglied
Nachtrag: Aber bis hierhin erstmal Danke an dich httpdigest ich werde es wohl mit einem Regex auf einer Query erschlagen. :)
Weist du zufällig wie der RegEx lauten muss?
 

KonradN

Super-Moderator
Mitarbeiter
Ich muss gestehen, dass ich mit MongoDB noch nicht viel gemacht habe, aber ich habe da paar Dinge gefunden, die evtl. interessant sein könnten:

- Wenn auf dem email Feld auch ein index ist, dann wäre dies hier die gewünschte Suche:
- Und in Spring wäre das dann vermutlich:

Oder habe ich hier jetzt einfach die Fragestellung bzw. die gefundenen Seiten falsch verstanden, so dass dies nicht weiter hilft?
(Das kann ich nicht ausschließen, da ich das so noch nie gebraucht habe. Evtl. kann da ja jemand kurz drauf schauen um das zu bewerten ... Eine Chance mich auszulachen :) )
 

TM69

Bekanntes Mitglied
Ich muss gestehen, dass ich mit MongoDB noch nicht viel gemacht habe, aber ich habe da paar Dinge gefunden, die evtl. interessant sein könnten:

- Wenn auf dem email Feld auch ein index ist, dann wäre dies hier die gewünschte Suche:
- Und in Spring wäre das dann vermutlich:

Oder habe ich hier jetzt einfach die Fragestellung bzw. die gefundenen Seiten falsch verstanden, so dass dies nicht weiter hilft?
(Das kann ich nicht ausschließen, da ich das so noch nie gebraucht habe. Evtl. kann da ja jemand kurz drauf schauen um das zu bewerten ... Eine Chance mich auszulachen :) )
Danke für deinen Hinweis KonradN
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Spring MongoDB: Auswertung schlägt fehl Datenbankprogrammierung 1
T Spring MongoDB @Indexed(unique=true) Datenbankprogrammierung 0
T Spring MongoDB self-reference Datenbankprogrammierung 2
T Cast-Fehler: Spring Data exists.... boolean??? Datenbankprogrammierung 1
ma095 value NULL- Datenbank Postgresql Spring - intellij community Datenbankprogrammierung 0
OnDemand Spring Boot Speichern in Threads Datenbankprogrammierung 6
bueseb84 Spring Boot : Update Mysql Datenbank Datenbankprogrammierung 1
M Spring, JPA, Hibernate, H2 Datenbankprogrammierung 2
R JPA, Spring, löschen einer Entity Datenbankprogrammierung 2
J Hibernate + Spring + SQL Server => Performanceprobleme :( Datenbankprogrammierung 4
R Mongodb testen bzw mocken Datenbankprogrammierung 3
R Mongodb Daten werden immer überschrieben Datenbankprogrammierung 7
R Mongodb tree Architektur Datenbankprogrammierung 6
R Mongodb Unterschied MongoClient und Repository. Datenbankprogrammierung 3
R Mongodb Daten in einem bestimmten Document speichern Datenbankprogrammierung 1
R Mongodb Authentication failed Datenbankprogrammierung 6
R Beste Lösung für User Erstellung in mongodb Datenbankprogrammierung 1
6 MongoDB Dokument basierend auf Referenz finden Datenbankprogrammierung 1
MongoDB-Datenbank in Androidstudio einbinden Datenbankprogrammierung 1
N MongoDB Datenbankprogrammierung 5
S MongoDB löschung ohne Cascade Datenbankprogrammierung 1
OnDemand MySQL und mongoDB wann macht was Sinn? Datenbankprogrammierung 11
S MongoDB Community Edition Datenbankprogrammierung 1
S MongoDB - Abfrageergebnis in Array speichern Datenbankprogrammierung 2
C Über Classpath MongoDB Treiber einbinden und korrekte import Pfade Datenbankprogrammierung 8
B MongoDB- Queryception Datenbankprogrammierung 6
M MongoDb Versändnis Fragen: ( multiserver, morphia/morphium ) Datenbankprogrammierung 0
A MongoDB Passwort Problem Datenbankprogrammierung 0
T MongoDB: Morphia REST 505 Exception Tomcat Datenbankprogrammierung 2
G MongoDB - klassisches one to many Datenbankprogrammierung 2
P MongoDB vs. andere DBs Datenbankprogrammierung 0
D Daten posten auf RestApi (Mongodb/NoSQL) Datenbankprogrammierung 0
F MSSql oder MongoDB für die Speicherung von POI Datenbankprogrammierung 9
zhermann H2 DB prüfen od sie neu ist Datenbankprogrammierung 4
B SQL-Statement Prüfen ob eine Spalte einen Wert enthält Datenbankprogrammierung 2
E Kann man in DB2 gegen ein XML-Schema prüfen? Datenbankprogrammierung 1
D MySQL DB Abfrage Prüfen Datenbankprogrammierung 10
H JDBC prüfen ob Table existiert Datenbankprogrammierung 3
A SQL-Statement prüfen Datenbankprogrammierung 3
F HSQLDB Auf vorhandenen Index prüfen Datenbankprogrammierung 3
C Prüfen, ob eine MySQL-Tabelle bereits existiert Datenbankprogrammierung 7
klattiator Primärschlüssel auf Existenz prüfen Datenbankprogrammierung 6
R Prüfen ob Tabelle existiert? Datenbankprogrammierung 4
K Prüfen ob Tabelle schon vorhanden Datenbankprogrammierung 7
G Tabel prüfen Datenbankprogrammierung 5
S connectionstatus prüfen Datenbankprogrammierung 9
K ResultSet prüfen,ob es leer ist oder ob vorhanden Datenbankprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben