Kiedy uruchamiamy zapytanie find() Mongo bez określonej kolejności sortowania, co baza danych używa wewnętrznie do sortowania wyników?W jaki sposób MongoDB sortuje rekordy, gdy nie określono kolejności sortowania?
Według documentation on the mongo website:
Podczas wykonywania find() bez parametrów, baza danych zwraca obiektów w przód celu naturalnego.
W przypadku stołów standardowych zamówienie naturalne nie jest szczególnie użyteczne, ponieważ, , chociaż zamówienie jest często zbliżone do zamówienia reklamowego, nie jest gwarantowane, że jest to . Jednak w przypadku kolekcji z korkami zamówienie naturalne to gwarantowane jako zamówienie reklamowe. To może być bardzo przydatne.
W przypadku standardowych kolekcji (kolekcje bez limitów), jakie pole jest używane do sortowania wyników? Czy jest to pole _id lub coś innego?
Edit:
Zasadniczo myślę, co próbuję dostać się na to, że jeśli mogę wykonać następujące wyszukiwarki zapytanie:
db.collection.find({"x":y}).skip(10000).limit(1000);
w dwóch różnych punktach w czasie: t1 i t2, czy otrzymam różne zestawy wyników:
- Kiedy nie było żadnych dodatkowych zapisów między t1 & t2?
- Kiedy pojawiły się nowe zapisy między t1 & t2?
- Istnieją nowe indeksy, które zostały dodane między t1 & t2?
mam przeprowadzić kilka testów na bazie temp a wyniki Dostałem są takie same (Tak) dla wszystkich 3 przypadkach - ale chciałem mieć pewność, i jestem pewien, że moje przypadki testowe weren jest bardzo dokładny.
Więc to oznacza, że jeśli uruchomię ten sam znaleźć polecenie: db.collection.find ({ "x": y}). SKIP (20000) .limit (1000) w dwóch różnych punktach w czasie, będę uzyskać różne zestawy wyników? Co się stanie, jeśli nie ma zapisów między tymi dwoma poleceniami? – saurabhj
@saurabhj: Dodano kilka przykładów, które będą miały wpływ na naturalny porządek. Jeśli dokumenty zostały przeniesione/usunięte, możesz uzyskać różne zestawy wyników. Jeśli nie było żadnych insertów/aktualizacji/usunięć dokumentów, powinieneś uzyskać ten sam wynik. Dodawanie indeksów nie wpływa na lokalizację dokumentów na dysku. – Stennie
Należy również dodać zastrzeżenie, że jeśli używasz [replikację] (http://www.mongodb.org/display/DOCS/Replication) naturalna kolejność może wahać się między członkami zestawu replik. – Stennie