NoSql Crash Kurs / Tutorial [geschlossen]


100

Ich habe gesehen, dass NoSQL auf SO ziemlich oft auftaucht, und ich habe ein solides Verständnis dafür, warum Sie es verwenden würden (von hier aus, Wikipedia usw.). Dies könnte auf das Fehlen einer konkreten und einheitlichen Definition dessen zurückzuführen sein, was es ist (eher ein Paradigma als eine konkrete Implementierung), aber ich habe Mühe, mich darum zu kümmern, wie ich ein System entwerfen würde, das es verwendet oder wie Ich würde es in meinem System implementieren. Ich bin wirklich in einer relationalen DB-Denkweise gefangen, die Dinge in Bezug auf Tabellen und Verknüpfungen betrachtet ...

Kennt jemand einen Crashkurs / ein Tutorial auf einem System, das es verwenden würde (eine Art "Hallo Welt" für ein NoSQL-basiertes System) oder ein Tutorial, das eine vorhandene "Hallo Welt" -App auf SQL-Basis verwendet und konvertiert es in NoSQL (nicht unbedingt in Code, sondern nur eine allgemeine Erklärung).


Dieses Video hat mir sehr gut gefallen . Ist ein Webinar von 10Gen. Es wird erklärt, wie Sie mit MongoDB grundlegende Inhalte veröffentlichen und soziale Interaktionen (Tags, Kommentare, Datenaggregation) hinzufügen.
Onema

Antworten:



53

In seiner einfachsten Form ist NoSQL eigentlich nur eine Möglichkeit, Objekte mithilfe eines Schlüssel / Wert-Paarungssystems zu speichern. Du benutzt das die ganze Zeit schon, nehme ich an. Zum Beispiel. In Javascript können Sie ein Objekt mit dem Namen foo erstellen und dann foo['myobj'] = myobj;Inhalte im Objekt speichern.

Alles, was NoSQL-Server wirklich tun, ist, Ihnen die Möglichkeit zu geben, massive Arrays hinzuzufügen / zu löschen / abzufragen und dennoch Persistenz und Fehlertoleranz zu berücksichtigen. Sie können ein NoSQL im Speicherserver in etwa 100 Codezeilen erstellen.

Machen wir es also so ... in CouchDB verwenden Sie map / redu ... also erstellen wir eine Map-Funktion, die genau wie ein bisschen SQL-Code funktioniert:

SELECT * FROM users WHERE age > 10

In CouchDB stellen Sie dem Server eine JavaScript-Funktion zur Verfügung, die für jedes Element in der Datenbank ausgeführt wird ...

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

Das ist alles, was es wirklich zu tun gibt ..... von da an wird es auf der Serverseite viel komplexer, da der Server Abstürze und mehrere Revisionen desselben Objekts verarbeiten muss, aber dies ist nur ein Beispiel.


10
Ihr Beispiel scheint in einer großen Datenbank ineffizient zu sein. Kann der Server den Dokumenttyp indizieren oder die verwendeten Schlüssel und die Schlüssel indizieren? Wie Schlüssel könnten Benutzer1, Benutzer2 usw. sein
Jess



1

y_serial ist als einzelnes Python-Modul geschrieben, das sich wie ein funktionierendes Tutorial liest und viele Tipps und Referenzen enthält: http://yserial.sourceforge.net/

Dies nimmt die Perspektive ein, wie ein beliebiges Python-Objekt (z. B. eine Wörterbuchdatenstruktur) auf eine "NoSQL" (nicht nur SQL) Weise beibehalten werden kann.





Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.