English 中文(简体)
MongoEngine - Sorting
  • 时间:2024-12-22

MongoEngine - Sorting


Previous Page Next Page  

QuerySet’s order_by() function is used to obtain the query result in a sorted manner. The usage is as follows −


Qset.order_by(‘fieldname’)

By default, the sort order is ascending. For descending order, attach – sign to name of field. For example, to get price wise pst in ascending order −


from mongoengine import *
con=connect( newdb )

class products (Document):
   ProductID=IntField(required=True)
   company=StringField()
   Name=StringField()
   price=IntField()
for product in products.objects.order_by( price ):
   print ("Name:{} company:{} price:{}".format(product.Name, product.company, product.price))

Output


Name:Router company:Iball price:2000
Name:Scanner company:Cannon price:5000
Name:Printer company:Cannon price:12500
Name:Laptop company:Acer price:25000
Name:TV company:Phipps price:31000
Name:Laptop company:Dell price:45000
Name:TV company:Samsung price:50000

Following code will get the pst in descending order of name −


for product in products.objects.order_by( -Name ):
   print ("Name:{} company:{} price:{}".format(product.Name, product.company, product.price))

Output


Name:TV company:Samsung price:50000
Name:TV company:Phipps price:31000
Name:Scanner company:Cannon price:5000
Name:Router company:Iball price:2000
Name:Printer company:Cannon price:12500
Name:Laptop company:Acer price:25000
Name:Laptop company:Dell price:45000

You can also get sorting done on multiple fields. This code will get you companywise, pricepst in ascending order.


for product in products.objects.order_by( company , price ):
   print ("Name:{} company:{} price:{}".format(product.Name, product.company, product.price))

Output


Name:Laptop company:Acer price:25000
Name:Scanner company:Cannon price:5000
Name:Printer company:Cannon price:12500
Name:Laptop company:Dell price:45000
Name:Router company:Iball price:2000
Name:TV company:Phipps price:31000
Name:TV company:Samsung price:50000
Advertisements