pouzitie MongoDB

Programovacie jazyky, rady, poradňa...
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

pouzitie MongoDB

Príspevok od používateľa harrison314 »

Zdravim,
verim, ze je tu dakto skuseny a opise mi hlavne scenare pouzitia MongoDB respektyve dokumentovych NoSQL databaz.
Dakujem
pcsiete
Medium Star
Medium Star
Príspevky: 413
Registrovaný: 07 dec 2012, 18:47

Re: pouzitie MongoDB

Príspevok od používateľa pcsiete »

harrison314, pozrel som si tvojich poslednych 35 zalozenych tem. Pytas sa na nejaku vec (o ktorej casto vies ze ti tu nik neporadi, napr. "verim") a namiesto toho aby si napisal na serioznejsie anglicke forum (co si mozno aj urobil) to pises tu. Ked proste vies ze uroven programatorskej casti fora nie je dostatocne vysoka, preco sa tu pytas?

Z tych poslednych 35 tem je 14, cize 40% presne takehoto typu. Oplaca sa ti to? Co robis ked ti nikto neporadi? Ides na dalsiu temu?
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: pouzitie MongoDB

Príspevok od používateľa harrison314 »

aj sem chodi par schopnych koderov, aj ked sa daju spocitat na prstoch jednej ruky,
ked nenasjdem googlim dalej
MeanSeriously
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 430
Registrovaný: 14 apr 2012, 15:07

Re: pouzitie MongoDB

Príspevok od používateľa MeanSeriously »

@harrison: Presne tak. Tu chodí zopár dobrých kóderov. Dobrých programátorov by si tu spočítal na prstoch jednej ruky. Prečo sa teda v prípade problému (najmä takto špecifického) ideš spýtať na hojko, a nie na StackOverflow a jemu podobné
(SuperUser, Programmers, IT Security, DBA etc), Programming Forums, popr. teraz som našiel tento článok na CodeRanch,
alebo čo tak sa spýtať na oficiálnom fóre NoSQL?

Určite na každej z týchto stránok sa nájde viac a lepších odborníkov, ktorí ti odpovedia rýchlejšie, kvalitnejšie, komplexnejšie etc.
strejdabob
Amateur
Amateur
Príspevky: 12
Registrovaný: 12 jan 2013, 22:53

Re: pouzitie MongoDB

Príspevok od používateľa strejdabob »

Zdravím, ja momentálne používam MongoDB v projekte, na ktorom pracujem. Data v Mongu sú proste ukladané iným spôsobom. Nemáš tam pevne danú štruktúru ani dátové typy... jednu kolekciu (v SQL tabuľku) si predstav ako pole objektov, kde každý objekt má svoje jedinečné ID (zatiaľ nič nové). Každý objekt (v Mongu sa to volá document) je vlastne asociatívne pole, kde každý prvok v tomto asoc. poli môže byť ďalšie asoc. pole.

Ja to využívam preto, lebo ide o databázu publikácií, kde sú rôzne typy publikácií a každý typ má úplne iné položky a dynamicky potrebujem k záznamom niekedy pridávať nové položky, napr ISBN, ktoré tam dovtedy nebolo atď... VŠETKO čo sa dá spraviť v SQL sa dá spraviť aj v noSQL a naopak...pre taký prípad ako moja databáza existuje pár riešení v SQL (hlavne EAV model) ale všetky riešenia sú zlé a je to len taký kompromis a selecty sú veľmi zložité a neefektívne. Myslím že práve pre tento prípad sa noSQL hodí najviac, lebo nemá pevne danú štruktúru. Ďalej si viem predstaviť využitie v e-shopoch s veľa rôznymi položkami a kategóriami, ktoré spolu nesúvisia (napr. predávaš mobily a žehličky a tie majú rôzne atribúty/špecifikácie...)
pcsiete
Medium Star
Medium Star
Príspevky: 413
Registrovaný: 07 dec 2012, 18:47

Re: pouzitie MongoDB

Príspevok od používateľa pcsiete »

vsak kto by si nezvolil metodu autopochvaly, ked to ma iste :D mam pocit ze tu vobec nejde o MongoDB.
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: pouzitie MongoDB

Príspevok od používateľa harrison314 »

MeanSeriously: ja viem pouzivat googloe :D , len vetcinou na oficilnych strankach je to prezentovane ako univerzalny liek na vsteko, na forach riesia veci na ktore by som NoSQL nikdy nepouzil, tutorialy zas hrackarske veci, ale to tvoja chyba nie je

ref0: (k zmazanemu prispevku :D ) uplne suhlasim, sam sa venujem MS SQL, ale chcem vediet co ma "konkurencia"

strejdabob: viem si riesnie daneho problemu predstavit pomocou 3 tabuliek a operatoru PIVOT, ale zaujimali by ma dalsie veci:
1) daju sa dokumenty idenxovat aj podla dacoho ineho ako ID ?
2) ked chcem vyhladavat napriklad podla autora, podla ISBM a podla nazvu poblikacie, je treba do Monga vlozit ten isty zaznam trikrat?
3) co je natom s programatorskeho hladiska prijemne/zaujimave
4) pri com si si trhal vlasi a musel robit krute heky aby si z toho dostal pozadovane data?
Baseilos
Light Expert
Light Expert
Príspevky: 57
Registrovaný: 01 máj 2011, 2:15

Re: pouzitie MongoDB

Príspevok od používateľa Baseilos »

Na uvod:
- Odporucam https://education.10gen.com/

K tvojim otazkam:
- Obecne vyhody NoSQL databaz je jednoduchsia skalovatelnost
- Ano, mongodb ma indexy. Je mozne indexovat aj ine ako ID stlpce. Dokonca ma podporu pre indexy pre spatial operacie
- Nechapem otazke, ale MongoDB query language si pozri v dokumentacii. Ponuka prakticky rovnake moznosti ako klasicke SQL databazy
- Svojim sposobom to moze byt viac "agile" friendly. Nakolko MongoDB pracuje s JSON dokumentami ktore su ukladane do kolekcii je jednoduche pridavat rozne nove udaje do jednotlivych JSON dokumentov v kolekcii. Tj. nie je nutne aby vsetky dokumenty v kolekcii obsahovali rovnake "stlpce".
- Pokial sa nemylim tak, MongoDB momentalne podporuje len transakcie na urovni 1 JSON dokumentu. Neexistuju "foreign key" a musis to obkodit v aplikacii rucne. Povedal by som, ze na aplikacie kde potrebujes zabezpecit vysoku integritu dat (FK, Transakcie atd) nie je MongoDB vhodne.
strejdabob
Amateur
Amateur
Príspevky: 12
Registrovaný: 12 jan 2013, 22:53

Re: pouzitie MongoDB

Príspevok od používateľa strejdabob »

harrison: na všetky otázky myslím odpovedal Baseilos a čo k tomu dodať. Ja som študent a použil som to v školskom projekte. Viem, že sa to dá spraviť aj v SQL (písal som o tom vyššie), ale tu som videl šancu skúsiť/naučiť sa niečo nové, moderné, iné... robiť stále to isté s tými istými technológiami (a ešte v škole zadarmo a dobrovoľne) je trochu nechutné :D a takto som si ten projekt trochu oživil, že som sa popritom naučil robiť s Mongom

Baseilos: neviem, čo presne myslíš, ale cudzie kľúče v Mongu existujú, môžeš mať vzťahy medzi dukumentami v rôznych kolekciách...

http://docs.mongodb.org/manual/referenc ... ces/#dbref
Baseilos
Light Expert
Light Expert
Príspevky: 57
Registrovaný: 01 máj 2011, 2:15

Re: pouzitie MongoDB

Príspevok od používateľa Baseilos »

strejdabob napísal:harrison: na všetky otázky myslím odpovedal Baseilos a čo k tomu dodať. Ja som študent a použil som to v školskom projekte. Viem, že sa to dá spraviť aj v SQL (písal som o tom vyššie), ale tu som videl šancu skúsiť/naučiť sa niečo nové, moderné, iné... robiť stále to isté s tými istými technológiami (a ešte v škole zadarmo a dobrovoľne) je trochu nechutné :D a takto som si ten projekt trochu oživil, že som sa popritom naučil robiť s Mongom

Baseilos: neviem, čo presne myslíš, ale cudzie kľúče v Mongu existujú, môžeš mať vzťahy medzi dukumentami v rôznych kolekciách...

http://docs.mongodb.org/manual/referenc ... ces/#dbref
Mal som na mysli, ze MongoDB neudrzuje integritu dat cez FK. Tj. nestrazi to ci "druha" strana existuje, nerobi to cascade delete/update. Pokial viem tak to DBRef tiez nerobi.
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: pouzitie MongoDB

Príspevok od používateľa harrison314 »

vdaka za odpovede
2) ked chcem vyhladavat napriklad podla autora, podla ISBM a podla nazvu poblikacie, je treba do Monga vlozit ten isty zaznam trikrat?
Som myslel ci je nutne pristupovat ku redudancii na na urvni kolekcii.
Napísať odpoveď