MongoDB에서 a field can have multiple values (값의 배열). 각각의 색인이 생성되므로 모든 값을 필터링 할 수 있습니다. 그러나 여러 값을 가진 필드를 "정렬"할 수 있고 그 결과는 무엇입니까?MongoDB 멀티 키는 어떻게 정렬합니까?
는 업데이트 : 불평등 길이 배열로
> db.test.find().sort({a:1})
{ "_id" : ObjectId("4f27e36b5eaa9ebfda3c1c53"), "a" : [ 0 ] }
{ "_id" : ObjectId("4f27e3845eaa9ebfda3c1c54"), "a" : [ 0, 1 ] }
{ "_id" : ObjectId("4f27df6e5eaa9ebfda3c1c4c"), "a" : [ 1, 1, 1 ] }
{ "_id" : ObjectId("4f27df735eaa9ebfda3c1c4d"), "a" : [ 1, 1, 2 ] }
{ "_id" : ObjectId("4f27df795eaa9ebfda3c1c4e"), "a" : [ 2, 1, 2 ] }
{ "_id" : ObjectId("4f27df7f5eaa9ebfda3c1c4f"), "a" : [ 2, 2, 1 ] }
{ "_id" : ObjectId("4f27df845eaa9ebfda3c1c50"), "a" : [ 2, 1 ] }
{ "_id" : ObjectId("4f27e39a5eaa9ebfda3c1c55"), "a" : [ 2 ] }
더 긴 배열이 짧은 배열
그래서보다 "낮은"입니다, 왜 [0] 전에 [0,1입니다 ] [2,1] 후에 [2]? 정렬은 첫 번째 배열 요소에서만 완료 되었습니까? 아니면 가장 낮은 것? 그 후에 그것은 삽입 명령입니까?
인덱스 스캔의 경우 (테이블 스캔과 대조적으로) 어떻게 구현됩니까?
색인을 사용하는 경우에도 여전히 그렇습니까? – Thilo
예, 인덱스가 쿼리 결과를 변경하지 않는 인스턴스 중 하나입니다. 안타깝게도, MongoDB에서 항상 그런 것은 아닙니다 (솔직하게 다소 버그를 생각합니다). –
방금 확인했습니다. 인덱스를 작성해도 정렬 순서가 변경되지는 않습니다 (물론 좋음). 어떻게 구현되는지 궁금합니다. – Thilo