MongoEngine – Sorting


MongoEngine – Sorting



”;


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 list 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:Philips price:31000
Name:Laptop company:Dell price:45000
Name:TV company:Samsung price:50000

Following code will get the list 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:Philips 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, pricelist 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:Philips price:31000
Name:TV company:Samsung price:50000

Advertisements

”;

Leave a Reply

Your email address will not be published. Required fields are marked *