MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Przekształć dane MongoDB podczas wyszukiwania

Za pomocą mongodb można zrobić prawie wszystko po stronie serwera. Powodem, dla którego zwykle słyszysz „nie”, jest to, że poświęcasz zbyt dużo prędkości, aby miało to sens w zwykłych okolicznościach. Jedna z głównych sił stojących za PyMongo, Mike Dirolf z 10gen, ma dobry wpis na blogu na temat używania javascript po stronie serwera z pymongo tutaj:http://dirolf.com/2010/04/05/stored-javascript-w-mongodb-i-pymongo.html . Jego przykładem jest przechowywanie funkcji javascript, która zwraca sumę dwóch pól. Ale możesz łatwo zmodyfikować, aby zwracała pierwszą literę pola nazwy użytkownika. Treść brzmiałaby mniej więcej tak:

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

Najpierw jednak zrozum, że mongodb jest naprawdę dobry w odzyskiwaniu danych, a nie w przetwarzaniu ich. Rekomendacją (patrz na przykład 50 wskazówek i trików dla deweloperów mongodb od Kristiny Chodorow autorstwa Oreilly) jest zrobienie tego, do czego Andrew zwięźle nawiązał powyżej:utwórz kolumnę z pierwszą literą i zwróć ją w zamian. Wszelkie przetwarzanie może być wydajniejsze w aplikacji.

Ale jeśli uważasz, że nawet zapytanie o imię i nazwisko przed zwróceniem pełnego imienia[0] z „widoku” jest zbyt dużym zagrożeniem dla bezpieczeństwa, nie musisz robić wszystkiego najszybciej, jak to możliwe. Przez jakiś czas unikałem zmniejszania mapy w mongodb ze względu na wszystkie publiczne obawy dotyczące prędkości. Potem uruchomiłem moją pierwszą mapę i kręciłem kciukami przez 0,1 sekundy, przetwarzając 80 000 10k dokumentów. Zdaję sobie sprawę, że w schemacie rzeczy jest to malutkie. Ale ilustruje to, że tylko dlatego, że ogromna strona internetowa ma negatywny wpływ na wydajność przetwarzania po stronie serwera, nie oznacza to, że będzie to miało dla ciebie znaczenie. W moim przypadku wyobrażam sobie, że migracja do Hadoop zajęłaby mi trochę więcej czasu, niż po prostu zjedzenie tego 0,1 sekundy od czasu do czasu. Powodzenia w Twojej witrynie



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Błąd indeksu MongoDB 2dsphere (nieprawidłowa geometria?)

  2. Błąd Node.js:Nie można znaleźć modułu „mongoose”

  3. Jak przywrócić zrzut do działającego mongodb

  4. MongoDB - zamykanie z kodem:62

  5. return Model.create(arr).exec() nie działa w manguście