정렬 순서를 지정하지 않고 Mongo find () 쿼리를 실행할 때 데이터베이스는 결과를 정렬하기 위해 내부적으로 무엇을 사용합니까?
mongo 웹 사이트 의 문서에 따르면 :
매개 변수없이 find ()를 실행할 때 데이터베이스는 객체를 순방향 자연 순서로 반환합니다.
표준 테이블의 경우 자연 순서는 특히 유용하지 않습니다. 순서가 삽입 순서에 가까운 경우가 많지만 보장되지 않기 때문입니다. 그러나 Capped Collections의 경우 자연 순서가 게재 신청서로 보장됩니다. 이것은 매우 유용 할 수 있습니다.
그러나 표준 컬렉션 (제한되지 않은 컬렉션)의 경우 결과를 정렬하는 데 사용되는 필드는 무엇입니까? 그것은이다 _id의 필드 또는 뭔가 다른?
편집하다:
기본적으로 내가 얻으려는 것은 다음 검색 쿼리를 실행하는 것입니다.
db.collection.find({"x":y}).skip(10000).limit(1000);
서로 다른 두 시점 : t1 및 t2 에서 다른 결과 집합을 얻습니다.
- t1과 t2 사이에 추가 쓰기가 없었을 때?
- t1과 t2 사이에 새로운 쓰기가 있었습니까?
- t1과 t2 사이에 추가 된 새 인덱스가 있습니까?
임시 데이터베이스에서 몇 가지 테스트를 실행했으며 얻은 결과 는 3 가지 경우 모두 동일합니다 ( 예 ).하지만 확신하고 싶었고 내 테스트 사례가 그다지 철저하지 않다고 확신합니다.