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

Indeksowanie tablic równoległych w Mongodb

Zanim omówię możliwe obejścia, chcę tylko podkreślić, dlaczego MongoDB wybrał aby wymusić to ograniczenie w indeksowaniu tablic równoległych. Kiedy indeksujesz tablicę w MongoDB, tworzy indeks wielokluczowy z jednym kluczem na element tablicy. Dlatego jeśli utworzysz indeks złożony na dwóch tablicach, jednej z M odrębnymi wartościami, a drugiej z N odrębnymi wartościami, indeks zasadniczo ma MN kluczy. Jest to bardzo złe — jest nieliniowe w liczbie odrębnych elementów tablicy. Weź pod uwagę ilość pracy potrzebnej do utrzymania takiego indeksu podczas dodawania lub usuwania elementów tablicy.

OK, pomijając uzasadnienie, aby obejść to ograniczenie, pomocne będzie użycie aktualnej wersji MongoDB (2.6), która obsługuje przecinanie indeksów. Można utworzyć indeks na CustomerInformations i VehicleLicenseDisks a następnie MongoDB może używać obu indeksów i przecinać je, aby obsługiwać zapytania, które mają ograniczenia na oba.

Jeśli z jakiegoś powodu utkniesz przy MongoDB <2.6, możesz rozważyć przeprojektowanie schematu lub zależeć od indeksów, które używają co najwyżej jednego z pól tablicy.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Błąd rzutowania JSON.NET podczas serializacji Mongo ObjectId

  2. Jak wykonać zapytanie dotyczące obiektów, do których istnieją odwołania w MongoDB?

  3. mongodb-java POJO nie zwraca identyfikatora

  4. Spring Data MongoDB - $eq w ramach $project support

  5. Przechowuj datę w MongoDB bez uwzględniania strefy czasowej