Zeptal jsem se, jestli existuje pěkný GUI klient pro MongoDB. Moc děkuji @abtris a @OzzyCzech za odpovědi.
Vyzkoušel jsem v rychlosti Mongo Hub i Robomongo. A je to... hrůza. Vždyť jsou ti klienti úplně k ničemu.
- Table view. Absolutní nutnost. Rozklikávat si objekty a dívat se na jejich atributy - aka tree view? Jako vážně? Vždyť to je úplně k ničemu, na tohle víc než terminálového klienta nepotřebuji. (Mongo shell má navíc tu fičuru, že ve výchozím stavu má "expand all". Zato v Mongo Hubu i Robomongo se objekty zobrazují sbaleně, a aby toho nebylo málo, nenašel jsem, kde mají tlačítko na expand all.) Robomongo má table view, ale nepodporuje jednu důležitou věc. Pokud je nějaký sloupeček typu objekt, musí být "rozklikávatelný" - tj. možnost rozbalit objekt do více sloupců.
- ObjectId navigation. Pokud je nějaký atribut typu
ObjectId, když na něj poklikám, napoprvé se mě zeptá, k jaké kolekci to patří, a pak mě to bude navigovat k danému objektu. Nejlíp když si zapamatuje, že "tahle kolekce a tenhle atribut" rovná se "odkaz na tuhle kolekci" a bude to příště už dělat automaticky. - Inline update. Ne, že na mě vyskočí okýnko, kde bude celý dokument a já zase musím hledat jaký že to chci upravit atribut. Prostě v tabulce poklikám na políčko, udělá se z něj text field a upravuju - kliknu pryč a pošle se do DB update.
- Výchozí limit 1000. Na lokální databázi je jedno, jestli vrátím 30, 50, nebo 1000 objektů. A sakra, pokud se připojujeme do produkční DB, nejsme na vytáčeném připojení, takže přenášený objem dat je docela non-issue.
- SSH tunnelling. Příliš jsem nezkoumal, jak na tom Mongo Hub a Robomongo jsou, ale myslím, že tohle podporují. Prostě absolute must, abych mohl prohlížet vzdálený server.
- Single window mode. Tohle je hlavně výtka vůči Mongo Hubu - aby se všechno otevíralo do nového okna, to je hrůza. S tím prostě neumím pracovat.
- V levém panelu je tree view databází, kolekcí v nich, funkcí, uživatelů, indexů v kolekcích. Ale ať klikám jak klikám na indexy, nic se neotevře - k čemu to tam potom sakra je?
- Jak se sputí příkaz. Vážně, nedokázal jsem upravit jendoduchý
find(). Až po chvilce laborování jsem objevil, že to udělá Cmd-Enter. - Pokud mám nějaký výpis v table view. Upravím query, že nevrátí žádný záznam. Upravím ji znovu, že už vrátí záznamy, ty se zobrazí v tree view.
- Mapreduce. Spustil jsem, domněle z mongo shellu zadáním výstupní kolekce
{inline:1}, že mi to něco vrátí. A ono to vytvořilo kolekci{inline:1}. Pak Mongo Hub pro jistotu spadnul. - Tree view key-value-type úplně na všecno. I na statistiky serveru - sakra, to se dá reprezentovat trochu hezčeji, ne? A všude se vypisuje typ hodnoty v klíči. Popravdě, tohle mě zas tak nezajímá.
- Okno pro query/remove/insert/mapreduce/index se neotevře dvojitým poklepáním na kolekci v levém panelu. Musíte kliknout na
Queryv baru nahoře. Nejen, že to není intuitivní, že se na něco musí klikat v baru. Ale ta položka se tam jmenujeQuerya má u sebe symbol lupy. Což by značilo, že to bude jen na query (find) do databáze - ne, že tam bude všechno kolem dané kolekce.
Je prostě čas naučit se programovat v Cocoa a udělat něco pořádného, tohle je tristní.
U RoboMongo 0.8.4 ja tam indexy vidim a mam. Editace nad table view mi funguje dobre. Rozhodne lepsi nez prace s MongoLab.