2016-12-28 4 views
-1

나는 내가 필요할 때마다 그것들을 분류하기를 바라는 객체 배열을 가지고있다. 그래서 나는이 :삽입 순서가 MongoDB에 보존되어 있습니까?

things.sort! 

things.each do |thing| 
    Thing.create!(property: some_property) 
end 

things 배열은 za의 첫 번째 문자 문자열입니다. 그러나 위 코드를 실행하면 데이터베이스의 첫 번째 항목이 m으로 시작되고 알파벳순으로 z으로 이동 한 다음 a으로 돌아가 계속됩니다.

그렇다면 삽입 순서가 MongoDB에서 보장되지 않을 수도 있습니다.

+1

MongoDB가 삽입 순서를 유지해야하는 경우에 나는 놀랄 것입니다. PostgreSQL이나 MySQL 같은 데이터베이스조차 그렇게하지 않습니다. 특정 순서에 의존하는 경우 해당 특정 순서로 결과를 반환하도록 데이터베이스에 지시해야합니다. – spickermann

+0

@spickermann 결과를 검색 할 때마다 결과를 정렬해야한다면 삽입시 한 번만 정렬하는 것과 비교할 때 효율성이 떨어지지 않습니까? 하지만 MongoDB가 삽입 순서를 유지하지 않는다면 아마 유일한 해결책 일 것입니다. – 0472037

+1

대부분의 앱에서 삽입 순서는 데이터를 읽는 데 사용하려는 순서가 아니라고 주장합니다. 대부분의 경우 날짜, 숫자 또는 이름에 따라 순서가 필요하지만 일반적으로 삽입 타임 스탬프는 필요하지 않습니다. 인덱스를 사용하여 응용 프로그램에서 필요로하는 방식으로 데이터 읽기를 최적화하십시오. 그러나 각 앱마다 서로 다른 색인이 필요합니다. 앱별로 다르며 모든 앱마다 서로 다른 요구 사항이 있으므로 "삽입 주문 별"과 같은 기본값은 모든 경우에 적합하지 않습니다. – spickermann

답변