2016-04-01 19 views
0

Ich bin neu in NoSQL und ich mag, wie es funktioniert, aber ich habe einige Schwierigkeiten, NoSQL zu denken. Ich möchte einen Platz Referenz mit mehreren Schichten tun: - Land - Stadt - PlatzNoSQL-Strategien für Länder referenzielle

Es ist schwer, nicht als eine relationale Datenbank zu denken. Was ist die NoSQL-Strategie? Mein erster Ansatz ist es, eine Tabelle mit dem Namen „Ort“ mit diesem Format zu erstellen:

{ 
    placename: String, 
    placelongitude: Number, 
    placelatitude: Number, 
    placeparent: String 
} 

Aber ich denke, das für NoSQL nicht der beste Weg ist. Ich habe über diesen Weg nachgedacht:

{ 
    countryname: String, 
    cities: [{ 
     cityname: String, 
     places: [{ 
     placeid: Number, 
     placename: String, 
     placelongitude: Number, 
     placelatitude: Number 
     }], 
    }] 
} 

Was denkst du? Danke für Hilfe.

+0

Wenn 'place' eine Stadt und Land hat, warum nicht docs von' place' erstellen? – hyades

+0

Weil Join in NoSQL nicht möglich ist, wenn es richtig verstanden wird? – Pred05

+1

$ lookup existiert in mongo 3.2 – hyades

Antwort

1

Shop places in Ihrer Sammlung mit city und country als Schlüssel

{ 
    placeid: Number, 
    placename: String, 
    placelongitude: Number, 
    placelatitude: Number, 
    cityname: String, 
    countryname: String 
} 
+0

Oh ok, aber die Wiederholung ist kein Problem? Und wenn ich einige Felder in meiner Stadt oder Land wie Größe oder andere hinzufügen möchte, muss ich diese Informationen wiederholen? Oder ich kann den cityname mit citysidentifier setzen, um den Rest von Informationen zu erhalten, wenn ich es haben muss? – Pred05

+0

Ja, das ist ein Kompromiss bei der Verwendung einer Dokument-basierten DB. Ihre Lesevorgänge werden viel schneller, aber da die Daten nicht normalisiert sind, ist Ihre Update-Leistung nicht großartig. – hyades

+0

Ok es ist klarer danke, ich werde es versuchen. – Pred05

Verwandte Themen