sql >> Databáze >  >> NoSQL >> MongoDB

Transformujte data MongoDB při hledání

S mongodb je možné na straně serveru dělat téměř cokoliv. Důvod, proč obvykle uslyšíte „ne“, je, že obětujete příliš velkou rychlost, aby to za běžných okolností dávalo smysl. Jedna z hlavních sil stojících za PyMongem, Mike Dirolf s 10gen, má dobrý blogový příspěvek o používání javascriptu na straně serveru s pymongo zde:http://dirolf.com/2010/04/05/stored-javascript-in-mongodb-and-pymongo.html . Jeho příklad je pro uložení javascriptové funkce pro vrácení součtu dvou polí. Ale můžete snadno upravit tak, aby vrátilo první písmeno pole vašeho uživatelského jména. Podstata by byla něco jako:

db.system_js.first_letter = "function (x) { return x.charAt(0); }"

Nejprve si však uvědomte, že mongodb je vytvořen tak, aby byl opravdu dobrý v získávání vašich dat, ne ve skutečnosti dobrý ve zpracování. Doporučení (viz například 50 tipů a triků pro vývojáře mongodb od Kristiny Chodorow od Oreilly) je udělat to, co Andrew stručně naznačoval výše:vytvořit sloupec s prvním písmenem a místo toho jej vrátit. Jakékoli zpracování lze v aplikaci provádět efektivněji.

Ale pokud máte pocit, že i dotazování na celé jméno před vrácením fullname[0] z vašeho „zobrazení“ je příliš velkým bezpečnostním rizikem, nemusíte vše dělat nejrychlejším možným způsobem. Chvíli jsem se vyhýbal redukci map v mongodb kvůli všem veřejným obavám o rychlost. Pak jsem spustil svou první zmenšení mapy a 0,1 sekundy jsem hýbal palci, protože zpracovávalo 80 000 10k dokumentů. Uvědomuji si, že ve schématu věcí je to malinké. Ale ilustruje to, že jen proto, že je pro masivní web špatné mít výkon na nějakém zpracování na straně serveru, neznamená to, že by vám na tom záleželo. V mém případě si představuji, že migrace na Hadoop by mi trvala o něco déle, než jen tu a tam sníst tu 0,1 sekundy. Hodně štěstí s vašimi stránkami



  1. Jak zastavit mongo DB jedním příkazem

  2. Případy použití pro updateOne přes findOneAndUpdate v MongoDB

  3. Jak nastavit mongod.conf bind_ip s více IP adresami

  4. MongoDB - Vytvořte sbírku