Ich lerne das MEAN-Framework. Ich verstehe nicht, warum der Mongodb so beliebt ist, dass er im Framework erstellt wird und man die Datenbank nicht einfach ändern kann (oder kann ich?).MEAN - Datenbank in mongodb vs relationalen Datenbank
Meine Fragen sind.
- Warum wird der mongodb im MEAN-Framework verwendet?
- Warum gibt es keine Wahl zwischen noSql und Sql-Datenbank?
- Ist das MEAN-Framework (das mongodb verwendet) nur für einige Arten von Webprojekten oder für jede Art von Webprojekten geeignet?
- Wie kann ich diese Beispieldatenbank im mongodb erstellen?
Wenn ich zum Beispiel haben diese relationale Datenbank:
User
id
name
Car
id
user_id
car_make_id
name
CarMake
id
Name
als es möglich ist, einfache Abfragen zu machen:
- Zeigen Sie mir Benutzer und seine Autos. Eine Abfrage mit Join.
- Zeigen Sie mir alle Autos in meinen Systemen, Besitzer und ihre Typen. Eine Abfrage mit Join.
Wenn ich diese Datenbank in mongodb erstellen:
- verlor ich die Fähigkeit der realen Datenbanktransaktionen.
- Wie sollte die beste Implementierung dieser Datenbank in mongodb sein? Ich kann die gleiche Datenbankstruktur verwenden, aber es wird langsamer sein, weil ich mehr Anfragen in die Datenbank machen muss, wenn ich die obigen Abfragen erstellen werde. Oder die Abfragen mit dem $ Lookup werden langsamer sein als echte Joins in der SQL-Datenbank - habe ich recht?
Ich kann die Datenbankstruktur wie diese
ändernUser
id:
name:
cars: []
Car
id:
car_make_id:
name:
CarMake
id:
Name:
Oder ich kann die Datenbankstruktur wie folgt ändern. Die Liste der Autos ist in den Benutzer eingebettet.
User
id:
name:
cars:
[
{
id:
car_make_id:
name:
}
]
CarMake
id:
Name:
Aber wie bekomme ich: Zeig mir alle Autos in meinen Systemen, Besitzer und deren Typen. Könntest du mir bitte helfen, die Welt auf dem Mongodb-Weg zu sehen?
In dieser Datenbankstruktur. Wie kann ich mit allen Autos in meinem System sehen? Ich muss alle Benutzer abrufen und alle eingebetteten Autos lesen? –
Nein. Sie können einen eindeutigen Befehl mit "Cars.name" verwenden. Oder Sie können das Aggregationsframework dazu verwenden. Aber wenn Sie die Datenbank entwerfen. Entwerfen Sie zuerst die Anwendung und die Datenbank. (Reverse-Sache, wenn wir relationale Datenbanken verwenden.) –
Bitte denken Sie daran, die Antwort zu akzeptieren, wenn Sie Hilfe haben. Es wird hilfreich andere mit der gleichen Art von Problem. –