Nie mogę uzyskać dokładnej różnicy między "nscanned" i "nscannedObjects" w wynikach zapytania wyjaśniającego Mongodb.explain() in Mongodb: różnice między "nscanned" i "nscannedObjects"
Na MongoDB Explain documentation mogę przeczytać:
nscanned Kasa (dokumentów lub haseł indeksu) zbadał. Elementy mogą być obiektami lub kluczami indeksu. Jeśli włączony jest "indeks objęty", nscanned może być wyższy niż nscannedObjects.
nscannedObjects Liczba zeskanowanych dokumentów.
Czym różnią się te dwa pola? A dokładniej co to dokładnie znaczy, kiedy mam kwerendę, która używa BtreeCursor (indeksu), a te dwa pola są dwie różne wartości, na przykład:
{
"cursor" : "BtreeCursor a_1_b_1",
"isMultiKey" : false,
"n" : 5,
"nscannedObjects" : 5,
"nscanned" : 9,
(...)
}
wiem, co to jest "covered index" jest. Chciałbym zrozumieć, co dokładnie zrobiło zapytanie w powyższym przykładzie: Przekazał ("przeskanował") 9 elementów (nscanned = 9), gdzie wszystkie z nich są wpisami indeksu i odczytują ("zbadano") wartość tylko 5 z nich (nscannedObjects = 5) do wytworzenia zestawu wyników?