2016-04-04 7 views
0

Ich erstelle eine Web-App mit MEAN. Ich schaue mir die AngularJS-Tutorials an und sie haben eine große JSON-Datei mit allen darin enthaltenen Produkten und separate JSON-Dateien für jedes Produkt.MongoDB Json Dokumentstruktur

Link: https://docs.angularjs.org/tutorial/step_08

Wenn ich MongoDB bin mit und diese Daten haben.

"title: Grand Theft Auto V", 
"genre": "Genre: Action, Adventure", 
"developer": "Developer: Rockstar North", 
"releasedate": "Release Date: 2015. April 14. (PC)", 
"publisher": "Publisher: Rockstar Games ", 
"rcpu": "Intel Core i5 3470 @ 3.2GHZ (4 CPUs)/AMD X8 FX-8350 @ 4GHZ", 
"rram": "8GB", 
"rgpu": "NVIDIA GTX 660 2GB/AMD HD7870 2GB", 
"directx": "12", 
"operatingsystem": "Windows 7 ", 
"storage": "65GB", 
"mcpu": "Intel Core 2 Quad CPU Q6600/AMD Phenom 9850 Quad-Core Processor", 
"mgpu": "NVIDIA 9800 GT 1GB/AMD HD 4870 1GB", 
"ram": "4GB" 

Ich möchte eine Liste aller Spiele mit Titeln haben, dann einmal geklickt lädt die Systemanforderungen.

Was wäre der beste Weg, um die Daten aufzunehmen?

Vielen Dank.

+0

Was ist "MEAN"? –

+0

Sorry, ich denke deine Frage ist nicht klar. Wenn Sie fragen: "Was wäre der beste Weg, die Daten zu speichern?" Meinst du: 1) Was wäre die beste Datenbank-Technologie für Ihre Aufgabe; 2) Was wäre das beste Datenbankschema/Modell oder 3) Was wäre der beste Weg, um die Daten zu sammeln und Ihre Datenbank zu füttern. Oder keiner von ihnen. Bitte angeben. –

+1

@Hector - MEAN Steht für ** M ** ongoDB ** E ** xpress.JS ** A ** ngular.JS ** N ** ode.JS –

Antwort

2

Nun zuerst, Sie können this post folgen, um eine REST API für Ihre Spiele zu erstellen.

Jetzt würden Sie die Daten für die Liste der Spiele benötigen. Zu bekommen, dass man so etwas tun können:

db.collection('games').find({}, {title: 1}, function(err, games){ 
    if(err) console.log("Error: " + JSON.stringify(err)); 
    if(games) res.json(200, games); 
}); 

Jetzt kehrt das Ihnen eine Liste des Spiels title und ihre _id Felder aus.

Zweitens benötigen Sie Details über ein Spiel. Das können Sie erhalten, indem Sie die games Sammlung durch _id Feld abfragen. So etwas wie dieses:

db.collection('games').findOne({_id: game_id_from_request_params}, function(err, game){ 
    if(err) console.log("Error: " + JSON.stringify(err)); 
    if(game) res.json(200, game); 
}); 

Dies wird Ihnen Details über ein bestimmtes Spiel einschließlich aller Systemanforderungen geben.

Hoffe, das hilft.

+0

Danke für die Antwort, so sagen Sie, dass ich haben kann die Daten in einem Dokument? Das Angular-Beispiel war https://github.com/angular/angular-phonecat/tree/master/app/phones Sehen Sie, dass sie phones.json für wenig Information über alle von ihnen verwenden, dann eine JSON-Datei für jedes Telefon. Mein Wissen sagt mir ein MongoDB-Dokument ist das gleiche wie eine .JSON-Datei? – Noobcoder

+0

Eigentlich ist ein MongoDB-Dokument im Wesentlichen ein JSON-Objekt. Und ein JSON-Objekt ist im Wesentlichen ein JavaScript-Objekt mit Schlüsselwertpaaren. Jetzt liegt es an Ihnen zu entscheiden, ob Sie alle JSON-Objekte in einer JSON-Datei behalten wollen oder nicht. Was MongoDB tut, verwaltet eine Sammlung von Dokumenten, die JSON-Objekte sind. –

+0

Es liegt ganz bei Ihnen, wie Sie sie speichern möchten. Wenn dies nur zur Übung ist, können Sie diese JSON-Objekte auch in einem Array in einem AngularJS-Dienst oder in einer Factory speichern. Und rufen Sie Methoden von diesem Dienst oder dieser Fabrik auf, um die Daten zu erhalten. –

Verwandte Themen