2010-02-24 3 views
99

Ich habe gesehen, NoSQL Pop ziemlich viel auf SO und ich habe ein solides Verständnis von warum Sie würden es verwenden (von hier, Wikipedia, etc). Dies könnte an dem Mangel an konkreter und einheitlicher Definition dessen liegen, was es ist (eher ein Paradigma als eine konkrete Implementierung), aber ich kämpfe darum, wie ich ein System entwickeln würde, das es oder wie es benutzt Ich würde es in meinem System implementieren. Ich bin wirklich fest in einer relational-db Denkweise Denken der Dinge in Bezug auf Tabellen und Joins ...NoSql Crash Kurs/Tutorial

Auf jeden Fall weiß jemand von einem Crashkurs/Tutorial auf einem System, das es (Art von eine "Hallo-Welt" für ein NoSQL-basiertes System) oder ein Tutorial, das eine bestehende "Hello World" -App auf SQL-Basis übernimmt und sie in NoSQL umsetzt (nicht unbedingt im Code, sondern nur als High-Level-Erklärung).

+0

Ich mochte es wirklich [Video] (http://web.archive.org/web/20130106031559/http://www.10gen.com/presentations/webinar-managing-social-content-mongodb). Ist ein Webinar von 10Gen. Es erläutert, wie Sie mit MongoDB grundlegende Inhalte veröffentlichen und soziale Interaktionen (Tags, Kommentare, Datenaggregation) hinzufügen. – Onema

Antwort

46

Here is a decent slide show Einführung von MongoDB. Ich denke, einige der großen Unterschiede bestehen darin, dass die meisten Systeme auf Active Record oder eine ähnliche Datenbankabstraktion angewiesen sind.

Auch ich fand eine wunderbare free orlys book on Couch DB here, die ziemlich genial ist.

2

Werfen Sie einen Blick auf this Video von DNR TV, einige Hands on mit MongoDB. Könnte nett sein für eine erste Einführung.

52

In seiner grundlegendsten Form ist NoSQL wirklich nicht mehr als eine Möglichkeit, Objekte mithilfe eines Paares von Schlüssel/Wert-Paaren zu speichern. Du nimmst das die ganze Zeit schon an, nehme ich an. Zum Beispiel. In Javascript können Sie ein Objekt namens foo erstellen und dann foo['myobj'] = myobj; tun, um Sachen im Objekt zu speichern.

All NoSQL-Server wirklich tut, ist Ihnen eine Möglichkeit geben, hinzufügen/löschen/Abfrage massiven Arrays und nach wie vor für die Persistenz und Fehlertoleranz zu ermöglichen. Sie können einen NoSQL-Speicherserver in ungefähr 100 Codezeilen erstellen.

So machen wir es so machen ... in CouchDB Sie Karte verwenden/reduzieren ... also lassen Sie uns eine Map-Funktion auf die gleiche wie ein bisschen von SQL-Code tun erstellen:

SELECT * FROM users WHERE age > 10 

In CouchDB Sie bietet den Server mit einer JavaScript-Funktion, die gegen jedes Element in der Datenbank ausgeführt wird ...

function (doc) 
{ 
    if (doc.objType == "users") { 
     if (doc.age > 10) { 
      emit(doc._id, null) 
     } 
    } 
} 

das wirklich alles da ist es ..... es von dort auf dem Server Ende Art und Weise komplexer wird, wie der Server hat abstürzt, und mehrere Versionen des gleichen Objekts zu handhaben, aber dies ist nur ein Beispiel.

+10

Ihr Beispiel scheint in einer großen DB ineffizient zu sein. Kann der Server bei doc type indexieren oder schlau über die verwendeten Schlüssel sein und die Schlüssel indexieren? Wie Schlüssel könnten user1, user2, etc. sein. – Jess

1

y_serial wird als einzelnes Python Modul geschrieben, die wie ein Arbeits tutorial liest und viele Spitzen und Referenzen umfassen: http://yserial.sourceforge.net/

Dies nimmt die Perspektive, wie eine beliebige Python Objekt (zB eine Wörterbuch-Datenstruktur) beharren in eine "NoSQL" (Nicht nur SQL) Art und Weise.

2

mongoDB Website bietet eine große 10-Schritt-Anleitung in Form von Online-MongoDB-Shell-Simulation. es dauert 10 Minuten in Anspruch nehmen und ist eine wirklich gute Möglichkeit, mit NoSQL, um loszulegen!

http://www.mongodb.org/ (klicken Sie auf "ausprobieren")

+1

nur um hinzuzufügen, haben sie eine sql zu mongo Seite, die hilft, das Konzept durch Code http://docs.mongodb.org/manual/reference/sql-comparison/ –