NoSql Crash Course / Tutorial [zamknięty]


100

Widziałem, jak NoSQL pojawia się dość często w SO i dobrze rozumiem, dlaczego chcesz go używać (stąd, Wikipedia itp.). Może to wynikać z braku konkretnej i jednolitej definicji tego, czym jest (bardziej paradygmat niż konkretna implementacja), ale staram się zrozumieć, jak bym zajął się projektowaniem systemu, który by go używał lub jak Wdrożyłbym to w swoim systemie. Naprawdę utknąłem w mentalności opartej na relacjach, myśląc o rzeczach w kategoriach tabel i łączeń ...

W każdym razie, czy ktoś wie o awaryjnym kursie / samouczku dotyczącym systemu, który by go używał (coś w rodzaju „hello world” dla systemu opartego na NoSQL) lub samouczku, który wykorzystuje istniejącą aplikację „Hello World” opartą na SQL i konwertuje go na NoSQL (niekoniecznie w kodzie, ale tylko ogólne wyjaśnienie).


Bardzo podobał mi się ten film . To webinar 10Gen. Wyjaśnia, jak publikować podstawowe treści i dodawać interakcje społecznościowe (tagi, komentarze, agregacja danych) za pomocą MongoDB.
Onema

Odpowiedzi:



53

W swojej najbardziej podstawowej formie NoSQL jest tak naprawdę tylko sposobem przechowywania obiektów za pomocą pewnego rodzaju systemu parowania klucz / wartość. Zakładam, że używasz tego cały czas. Na przykład. w javascript możesz utworzyć obiekt o nazwie foo, a następnie zrobić to, foo['myobj'] = myobj;aby przechowywać rzeczy w obiekcie.

Wszystko, co naprawdę robią serwery NoSQL, to możliwość dodawania / usuwania / odpytywania ogromnych macierzy i nadal pozwala na trwałość i odporność na błędy. Możesz utworzyć NoSQL na serwerze pamięci w około 100 wierszach kodu.

Więc zróbmy to w ten sposób ... w CouchDB używasz map / redukuj ... więc stwórzmy funkcję odwzorowującą to samo, co kawałek kodu SQL:

SELECT * FROM users WHERE age > 10

W CouchDB udostępniasz serwerowi funkcję JavaScript, która jest uruchamiana dla każdego elementu w bazie danych ...

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

To wszystko, co w tym naprawdę jest ..... stamtąd po stronie serwera staje się znacznie bardziej skomplikowane, ponieważ serwer musi radzić sobie z awariami i wieloma wersjami tego samego obiektu, ale to tylko przykład.


10
Twój przykład wydaje się być nieefektywny w dużej bazie danych. Czy serwer może indeksować typy dokumentów lub sprytnie podchodzić do kluczy, których używa i indeksować klucze? Takimi kluczami mogą być user1, user2 itd.
Jess

3

Obejrzyj ten film z DNR TV, przedstawiając MongoDB . Może być miło na pierwsze wprowadzenie.



1

y_serial jest napisany jako pojedynczy moduł Pythona, który czyta się jak działający samouczek i zawiera wiele wskazówek i odniesień: http://yserial.sourceforge.net/

Przyjmuje to perspektywę utrwalenia dowolnego obiektu Pythona (np. Struktury danych słownika) w sposób „NoSQL” (nie tylko SQL).





Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.