-1
나는 내가 필요할 때마다 그것들을 분류하기를 바라는 객체 배열을 가지고있다. 그래서 나는이 :삽입 순서가 MongoDB에 보존되어 있습니까?
things.sort!
things.each do |thing|
Thing.create!(property: some_property)
end
things
배열은 z
에 a
의 첫 번째 문자 문자열입니다. 그러나 위 코드를 실행하면 데이터베이스의 첫 번째 항목이 m
으로 시작되고 알파벳순으로 z
으로 이동 한 다음 a
으로 돌아가 계속됩니다.
그렇다면 삽입 순서가 MongoDB에서 보장되지 않을 수도 있습니다.
MongoDB가 삽입 순서를 유지해야하는 경우에 나는 놀랄 것입니다. PostgreSQL이나 MySQL 같은 데이터베이스조차 그렇게하지 않습니다. 특정 순서에 의존하는 경우 해당 특정 순서로 결과를 반환하도록 데이터베이스에 지시해야합니다. – spickermann
@spickermann 결과를 검색 할 때마다 결과를 정렬해야한다면 삽입시 한 번만 정렬하는 것과 비교할 때 효율성이 떨어지지 않습니까? 하지만 MongoDB가 삽입 순서를 유지하지 않는다면 아마 유일한 해결책 일 것입니다. – 0472037
대부분의 앱에서 삽입 순서는 데이터를 읽는 데 사용하려는 순서가 아니라고 주장합니다. 대부분의 경우 날짜, 숫자 또는 이름에 따라 순서가 필요하지만 일반적으로 삽입 타임 스탬프는 필요하지 않습니다. 인덱스를 사용하여 응용 프로그램에서 필요로하는 방식으로 데이터 읽기를 최적화하십시오. 그러나 각 앱마다 서로 다른 색인이 필요합니다. 앱별로 다르며 모든 앱마다 서로 다른 요구 사항이 있으므로 "삽입 주문 별"과 같은 기본값은 모든 경우에 적합하지 않습니다. – spickermann