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

Skuteczne odpytywanie MongoDB (przez pymongo) w przypadku nieuwzględniania wielkości liter

PyMongo używa natywnych wyrażeń regularnych Pythona, w taki sam sposób, w jaki powłoka mongo używa natywnych wyrażeń regularnych javascript. Aby napisać równoważne zapytanie tego, co napisałeś w powłoce powyżej, użyjesz:

db.stuff.find_one({'name': re.compile(username, re.IGNORECASE)})

Zauważ, że pozwoli to uniknąć używania indeksu, który może istnieć w name jednak pole. Powszechnym wzorcem wyszukiwania lub sortowania bez rozróżniania wielkości liter jest umieszczenie w dokumencie drugiego pola, na przykład name_lower , który jest zawsze ustawiany, gdy name zmiany (na małą wersję name , w tym przypadku). Następnie zapytasz o taki dokument, jak:

db.stuff.find_one({'name_lower': username.lower()})


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak wypełnić dokumenty podrzędne zwrócone po agregacji wyszukiwania w mongodb?

  2. Omówienie szyfrowania na poziomie pola po stronie klienta w MongoDB

  3. Błąd ECONNREFUSED podczas łączenia się z mongodb z node.js

  4. Jak zarządzać użytkownikami i uwierzytelnianiem w MongoDB

  5. Dlaczego MongoDB nie może użyć indeksu złożonego, który jest bardzo podobny (nie dokładny) do zapytania?