LightMongo este un strat de persistenta al obiectului Mongo usor pentru Ruby, care foloseste caracteristicile lui Mongo, mai degraba decat sa incerce sa emuleze ActiveRecord.
stare
LightMongo este inca nou, dar toate exemplele de mai jos functioneaza. Va rugam sa verificati testele de integrare pentru indicatii de utilizare si sa postati orice probleme pe care le gasiti pe pagina cu probleme Github.
Instalare
LightMongo este cel mai bine instalat prin gem install light_mongo si este necesar in mod normal.
Depinde de gemul mongo, care este driverul MongoDB Ruby. Din motive de performanta, as recomanda instalarea mongo_ext, extensiile C pentru driver.
ACTUALIZARE : Se pare ca Kyle Banker a lansat o versiune 1.0 a soferului Ruby Mongo. Acest lucru este minunat, dar, din pacate, rupe o gramada de LightMongo. Nu pot garanta niciun mediu mai nou decat Ruby 1.8.6 si mongo 0.19.1 pentru moment.
Sine
Va rugam sa consultati LightMongo-Rails pentru o punte compatibila cu ActionPack.
Problema
Dezvoltatorii intalnesc ocazional un domeniu care sfideaza modelarea simpla intr-un stil relational ActiveRecord si cauta o solutie in unele baze de date nosql. Ei gasesc Mongo, o baza de date de documente si considera ca ar putea oferi flexibilitatea de care au nevoie. Dupa un pic de cercetare, ei aleg o biblioteca de persistenta care pare populara si bine intretinuta. Emuleaza chiar si majoritatea comportamentului, stilului si filozofiei relationale a ActiveRecord. Grozav!
Stai putin, nu a fost comportamentul, stilul si filozofia relationala a ActiveRecord din care s-au mutat la Mongo pentru a scapa?
Solutia
- Instantele Ruby isi stocheaza starea in variabile de instanta. De ce trebuie sa ascundem acest lucru in stratul de persistenta?
- Ruby are o gramada de operatori de management de matrice. De ce avem nevoie de relatii explicite si proxy-uri de relatii?
- Obiectele din aceeasi clasa pot indeplini o serie de roluri diferite sau pot fi legate de alte clase in multe feluri. De ce trebuie sa trecem prin cercuri complicate si restrictive pentru a face tot ceea ce facem in domenii Ruby pure tot timpul?
Mongo este o baza de date flexibila. Putem folosi aceasta flexibilitate pentru a permite stratului nostru de persistenta sa ia decizii cu privire la modul de serializare si deserializare a obiectelor noastre. Este responsabilitatea noastra sa ne asiguram ca domeniul nostru este corect. Este responsabilitatea bibliotecii sa stocheze acele obiecte de domeniu.
Suntem dezvoltatori Ruby. Sa ne comportam asa.
Un exemplu
masaje final feliz jovenes zorras
porno caca follada por su jefe
porno maduras en español comic maduras
porno casero españa mamadas a dos bocas
tetas en la playa pollones enormes
intercambio amateur mama incesto
porno comic español se folla a su hijo
videos gays españoles porno españa casero
negros follando a blancas humillada y follada
chochitos jovencitos follame xxx
guarras españolas porno iberico
chantaje y lujuria porno maduras en español
las mejores folladas penes negros
videos de sexo en español peliculas porno de viejas
muy maduras follando mamas cachondas
hentai audio español abuelos calientes
pollas arabes porno de abuelas
descargar pelis pornos milf squirt
Keyword mi vecina me folla
abuelas porno porno agresivo
.’) geology_article.save Article. find.first => # <Article: 0x101647448 @ _id = “4b93c1e97bc7697187000001” @ title = “Fizica fluidelor in geologie” @ abstract = “Lorem upsum dolor …”>
Fara mese. Nicio baza de date. Salvati migratiile pentru cand aveti de fapt unele date pentru a va deplasa.
Putin mai complex
Obiectele Plain Ruby stocate in Documentele dvs. vor fi serializate impreuna cu Documentul si incorporate in documentul Mongo.
Cautatori dinamici
In general, nu este o idee buna sa cautati mult pe chei care nu au fost indexate (ca in majoritatea bazelor de date), asa ca LightMongo va configura doar cautatori dinamici pentru atributele pe care ati cerut sa le indexati. Daca doriti cu adevarat un cautator neindexat, nu sunt greu de scris.
Optiunea de aliasare nu este necesara, dar este recomandata daca doriti cautatori dinamici pentru cheile indexate care nu pot fi reprezentate intr-un nume standard al metodei Ruby (de exemplu, nu va fi creat un cautator pentru un index complex de chei Mongo pe mai multe niveluri. Consultati manualul Mongo pentru mai multe informatii).
Relatii de colectare incrucisata
LightMongo isi foloseste mixul de documente pentru a semnifica o colectie, deci daca incorporati un LightMongo :: Document intr-un alt document LightMongo :: Document, motorul de serializare va considera aceasta o relatie de colectare incrucisata si se va comporta in consecinta.
Dezvoltare viitoare
- Migratii (de exemplu, cand redenumiti clasele sau modificati stilul lor de colectare).
- Un fel de validari, poate.








