Gibb Modul 165
use rent-a-room
db.createCollection("rooms")
db.createCollection("persons")
db.rooms.insertOne({
"name": "Studio zum Arbeiten",
"beschreibung": "Ein Studio mit guter Belichtung. Perfekt zum Arbeiten!",
"ort": {
"type": "Point",
"koordinaten": [13.4050, 52.5200]
},
"bewohner_ids": ["[email protected] ", "[email protected]"],
"besitzer_id": "[email protected]",
"zimmer": 2,
"fläche": 20,
"gebucht_von": ISODate("2024-03-14T00:00:00Z"),
"gebucht_bis": ISODate("2024-03-21T00:00:00Z")
})
db.persons.insertOne({
"_id": "[email protected]",
"vorname": "Max",
"nachname": "Mustermann",
"alter": 30,
"geschlecht": "männlich",
"telefon": "0123456789",
"email": "[email protected]"
});
db.rooms.update(
{ _id: ObjectId("65f321caeb1f6bbd3a48cf49") },
{
$set: {
"bewohner_ids": ["[email protected]", "[email protected]"],
"gebucht_von": ISODate("2024-03-11T00:00:00Z"),
"gebucht_bis": ISODate("2024-03-18T00:00:00Z")
}
}
)
db.persons.update(
{ _id: "[email protected]" },
{
$set: {
"telefon": "9876543210"
}
}
)
db.rooms.deleteOne({ _id: ObjectId("65f321caeb1f6bbd3a48cf49") })
db.persons.deleteOne({ _id: "[email protected]” })
{
"name": "Studio zum Arbeiten",
"beschreibung": "Ein Studio mit guter Belichtung. Perfekt zum Arbeiten!",
"ort": {
"type": "Point",
"koordinaten": [13.4050, 52.5200]
},
"bewohner_ids": ["[email protected] ", "[email protected]"],
"besitzer_id": "[email protected]",
"zimmer": 2,
"fläche": 20,
"gebucht_von": ISODate("2024-03-14T00:00:00Z"),
"gebucht_bis": ISODate("2024-03-21T00:00:00Z")
}
{
"name": "Studio zum Arbeiten",
"beschreibung": "Ein Studio mit guter Belichtung. Perfekt zum Arbeiten!",
"ort": {
"type": "Point",
"koordinaten": [13.4050, 52.5200]
},
"besitzer_id": "[email protected]",
"zimmer": 2,
"fläche": 20
}
{
"name": "Studio zum Arbeiten",
"ort": {
"type": "Point",
"koordinaten": [13.4050, 52.5200]
},
"besitzer_id": "[email protected]",
"zimmer": 2,
"fläche": 20
}
db.rooms.findOne({ _id: ObjectId("65f321caeb1f6bbd3a48cf49") })
db.persons.findOne ({ _id: "[email protected]" })
db.rooms.find()
db.persons.find()
db.rooms.find().sort({"zimmer": -1})
db.rooms.find({"beschreibung": "grosses Haus"})
db.rooms.find({"fläche": { $gt: 100 } })
Realistisches Anzeigen von Daten, wie sie in etwa in der App funktionieren:
[Alle]
- Alle LEEREN Räume finden, egal wo
- Sortieren/Filtern nach Ort, Fläche, Zimmeranzahl etc.
[Nur jeder User für sich]
- Den Raum anzeigen, welchen man besitz
- Den Raum anzeigen, welchen man bewohnt
- Sein eigenes Profil anzeigen
- Sein eigenes Profil bearbeiten (Telefon, Email, Alter...)
- Sein Profil löschen
[Der Bucher]
- Den Bewohner vom Raum ändern
- Gebucht von/bis vom Raum ändern
[für Besitzer]
- Raum erstellen
- Die Raumdetails (Fläche, Zimmer, Besitzer, Beschreibung...) bearbeiten
- Den Raum löschen
[Einmalig]
- Benutzer erstellen
graph TD;
Benutzer -->|startet Script| main.py;
main.py --> gui.py;
gui.py <--> db_connection.py;
db_connection.py -->|verbindet|MongoDB;