MongoDB - Query Dokument
Hallo da draußen, zukünftige Datenbank-Zauberer! Heute tauchen wir in die aufregende Welt von MongoDB ein und lernen, wie man Dokumente abfragt. Als Ihr freundlicher Nachbarschafts-Computerlehrer bin ich hier, um Sie auf dieser Reise Schritt für Schritt zu führen. Also, holt Euch Eure virtuellen Helme und los geht's!
Die find() Methode
Die find()
Methode ist wie eine Schatzsuche in MongoDB. Sie hilft uns, Dokumente in einer Sammlung zu suchen. Stellt Euch vor, Ihr habt eine Sammlung namens "students" in Eurer Schuldatenbank. Sehen wir uns an, wie wir find()
verwenden können, um Informationen abzurufen.
db.students.find()
Diese einfache Codezeile gibt alle Dokumente in der "students" Sammlung zurück. Es ist, als ob Ihr fragt: "Zeig mir alle Schüler!"
Aber was ist, wenn wir spezifischer sein möchten? Angenommen, wir möchten alle Schüler namens "John" finden:
db.students.find({name: "John"})
Diese Abfrage gibt alle Dokumente zurück, bei denen das Namensfeld "John" ist. Es ist, als ob wir fragen: "Kannst du mir alle Johns in der Klasse zeigen?"
Die pretty() Methode
Nun machen wir unsere Ergebnisse hübsch und ordentlich mit der pretty()
Methode. Es ist, als ob wir unseren Daten ein schickes Makeover geben!
db.students.find().pretty()
Dies zeigt die Ergebnisse in einer formatierten Weise an, was es uns einfacher macht, sie zu lesen. Es ist, als ob Ihr Euer chaotisches Zimmer aufräumt – plötzlich sieht alles viel besser aus!
Die findOne() Methode
Manchmal möchten wir nur ein Dokument finden. Da kommt findOne()
gerade recht. Es ist, als ob Ihr die erste Apfel vom Baum pickt.
db.students.findOne({name: "Sarah"})
Dies gibt das erste Dokument zurück, bei dem der Name "Sarah" ist. Wenn es mehrere Saras gibt, wird nur die erste gezeigt, die es trifft.
Äquivalente zu RDBMS WHERE Klauseln in MongoDB
Nun vergleichen wir MongoDB-Abfragen mit SQL-WHERE-Klauseln. Es ist, als ob wir zwischen zwei Sprachen übersetzen!
SQL WHERE Klausel | MongoDB Äquivalent |
---|---|
WHERE name = "John" | {name: "John"} |
WHERE age > 25 | {age: {$gt: 25}} |
WHERE age >= 25 | {age: {$gte: 25}} |
WHERE age < 25 | {age: {$lt: 25}} |
WHERE age <= 25 | {age: {$lte: 25}} |
WHERE age != 25 | {age: {$ne: 25}} |
AND in MongoDB
In MongoDB können wir Bedingungen mit logischem AND kombinieren. Es ist, als ob wir sagen: "Ich will das UND das."
db.students.find({name: "John", age: 20})
Diese Abfrage findet alle Dokumente, bei denen der Name "John" UND das Alter 20 ist.
OR in MongoDB
Manchmal möchten wir Dokumente finden, die entweder eine Bedingung oder eine andere erfüllen. MongoDB hat das auch für uns!
db.students.find({$or: [{name: "John"}, {age: 20}]})
Diese Abfrage findet alle Dokumente, bei denen der Name "John" ODER das Alter 20 ist.
AND und OR zusammen verwenden
Wir können sogar Bedingungen mit AND und OR kombinieren. Es ist, als ob wir eine komplexe Schatzkarte erstellen!
db.students.find({
grade: "A",
$or: [{name: "John"}, {age: 20}]
})
Diese Abfrage findet alle Dokumente, bei denen die Note "A" UND (der Name ist "John" ODER das Alter 20 ist).
NOR in MongoDB
NOR ist so, als ob man sagt "weder das noch das". Es ist das Gegenteil von OR.
db.students.find({
$nor: [{name: "John"}, {age: 20}]
})
Diese Abfrage findet alle Dokumente, bei denen der Name NICHT "John" UND das Alter NICHT 20 ist.
NOT in MongoDB
Schließlich haben wir den NOT-Operator, der so ist, als ob man sagt "alles außer das".
db.students.find({
name: {$not: {$eq: "John"}}
})
Diese Abfrage findet alle Dokumente, bei denen der Name NICHT "John" ist.
Und das war's, meine lieben Schüler! Wir haben die Welt der MongoDB-Abfragen durchquert, von einfachen Suchen bis hin zu komplexen logischen Operationen. Denkt daran, Übung macht den Meister,also fürchtet Euch nicht, diese Abfragen auszuprobieren. Wer weiß? Vielleicht entdeckt Ihr einige versteckte Schätze in Euren Daten!
Bevor wir aufhören, lassen Sie uns einen schnellen Quiz machen. Kannst du eine Abfrage schreiben, um alle Schüler zu finden, die entweder 18 Jahre alt sind ODER den Namen "Emma" haben UND eine Note von "B" haben? Probiere es aus und vergiss nicht, die pretty() Methode zu verwenden, um Deine Ergebnisse hübsch aussehen zu lassen!
Happy Querying, zukünftige Datenbankmeister!
Credits: Image by storyset