본문 바로가기

 

찾아낸 결과가 엄청 많아서 페이지 단위로 접근하고 싶다면, 아래 쿼리를 꼭 배우세요~

 

db.orders.find().sort( { "_id": -1 } ).skip((page-1)*2).limit(2);

 

길게 보이지만,

원하는 결과를 찾아서, 정렬하고, 앞에 부분을 원하는 개수만큼 스킵하고, 제한된 숫자로 가져오고

 

그래도 모르면 쓸 수 없다는....자세한 내용은 아래 원본 글을 참고합시다. 글 저자 보호~~

 

velopert.com/516

 

[MongoDB] 강좌 4편 find() 메소드 활용 – sort(), limit(), skip() | VELOPERT.LOG

이번 강좌에선 find() 메소드를 더욱 더 활용하기 위해 필요한 sort(), limit(), skip() 메소드에 대해 배워보겠습니다. 그냥 find() 메소드를 사용하면 criteria 에 일치하는 모든 document 들을 출력해주기

velopert.com

sort() 가 좀 적어둘 필요가 있어 보여서 

amount 오름차순으로 정렬, 정렬한 값에서 id 내림차순 정렬

 

정답은 => db.orders.find().sort( { "amount": 1, "_id": -1 } )

 

오름차순은 "1"
내림차순은 "-1" 이 되시겄다.

 

흐미..이 개념이 MongoEngine 에서는 아래와 같이 적용해야 한다.

docs.mongoengine.org/guide/querying.html

 

2.5. Querying the database — MongoEngine 0.22.1 documentation

There are a couple of methods to improve efficiency when querying, reducing the information returned by the query or efficient dereferencing . 2.5.8.1. Retrieving a subset of fields Sometimes a subset of fields on a Document is required, and for efficiency

docs.mongoengine.org

2.5.3. Sorting/Ordering results

# Order by ascending date
blogs = BlogPost.objects().order_by('date')    # equivalent to .order_by('+date')

# Order by ascending date first, then descending title
blogs = BlogPost.objects().order_by('+date', '-title')

2.5.4. Limiting and skipping results

# Only the first 5 people
users = User.objects[:5]

# All except for the first 5 people
users = User.objects[5:]

# 5 users, starting from the 11th user found
users = User.objects[10:15]

 

BJ.

먼지 수북한 술병 정렬

Julia Volk 님의 사진, 출처: Pexels

B로그0간

개발 관련 글과 유용한 정보를 공유하는 공간입니다.