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

Optymalne indeksy złożone dla $exists :true (rzadkie indeksy)

Wydaje się, że nie rozumiesz tutaj, że $exists nie może w żaden sposób "złapać" indeksu, nawet jeśli jest rzadki. Jak mówi sama dokumentacja:

Przykład podany na tych stronach to { "$exists": false } zapytanie. Ale odwrotny warunek logiczny nie ma tutaj żadnego znaczenia.

Aby uzyskać „pełne korzyści” z „rzadkiego” indeksu, należy wziąć pod uwagę „typ” przechowywanych danych i odpowiednio wykonać zapytanie.

W przypadku liczb, coś takiego:

db.collection.find({ "a": "foobar", "b": { "$gte": -9999, "$lte": 9999 } })

Który używa indeksu i rzadkiego. Lub w przypadku tekstu:

db.collection.find({ "a": "foobar", "b": /.+/ })

Który również użyje rzadkiego indeksu i spojrzy tylko na te, w których zdefiniowano „b”.

W przypadku „tablic” następnie „bądź ostrożny”. Ponieważ wartość, na którą patrzysz, jest prawdopodobnie jedną z powyższych, chyba że tak zrobiłeś:

db.collection.insert({ "a": 1, "b": [[]] })

Gdzie w takim razie jest to w porządku:

db.ab.find({ "a": 1, "b": { "$type": 4 } })

Ale tak naprawdę nie użyje "rzadkiego" indeksu z tych samych powodów $exists tutaj nie zadziała.

Musisz więc zrozumieć, co oznaczają te terminy, i przeprowadzić odpowiednie zapytania, aby użyć definicji indeksów, które tworzysz, jeśli oczekujesz maksymalnej wydajności.

Są to jasne przykłady, które możesz przetestować na sobie i zobaczyć, że wyniki są prawdziwe. Chciałbym, aby podstawowa dokumentacja była jaśniejsza w tych punktach, ale jestem również świadomy, że wielu próbowało wnieść swój wkład (i przedstawiło doskonałe wyjaśnienia), ale żadne z nich nie zostało do tej pory uwzględnione.

Chyba dlatego pytasz tutaj.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Spring boot + mongodb + problem z połączeniem z trasą wielbłąda

  2. Zagnieżdżona grupa MongoDB?

  3. MongoDB $push vs $addToSet:Jaka jest różnica?

  4. Zapytanie MongoDb near/geonear ze zmienną odległością

  5. Samoobsługowa MongoDB