- MongoEngine - Home
- MongoEngine - MongoDB
- MongoEngine - MongoDB Compass
- MongoEngine - Object Document Mapper
- MongoEngine - Installation
- MongoEngine - Connecting to MongoDB Database
- MongoEngine - Document Class
- MongoEngine - Dynamic Schema
- MongoEngine - Fields
- MongoEngine - Add/Delete Document
- MongoEngine - Querying Database
- MongoEngine - Filters
- MongoEngine - Query Operators
- MongoEngine - QuerySet Methods
- MongoEngine - Sorting
- MongoEngine - Custom Query Sets
- MongoEngine - Indexes
- MongoEngine - Aggregation
- MongoEngine - Advanced Queries
- MongoEngine - Document Inheritance
- MongoEngine - Atomic Updates
- MongoEngine - Javascript
- MongoEngine - GridFS
- MongoEngine - Signals
- MongoEngine - Text Search
- MongoEngine - Extensions
MongoEngine Useful Resources
MongoEngine - Sorting
QuerySets 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 −
main.py
from mongoengine import *
con = connect('myDb')
class Product(Document):
productID = IntField(required=True)
name = StringField()
price = IntField()
for product in Product.objects.order_by('price'):
print ("Name:{} price:{}".format(product.name, product.price))
Output
Name:Router price:2000 Name:Scanner price:5000 Name:Printer price:12500 Name:Laptop price:25000 Name:TV price:50000
Following code will get the list in descending order of name −
main.py
from mongoengine import *
con = connect('myDb')
class Product(Document):
productID = IntField(required=True)
name = StringField()
price = IntField()
for product in Product.objects.order_by('-name'):
print ("Name:{} price:{}".format(product.name, product.price))
Output
Name:TV price:50000 Name:Scanner price:5000 Name:Router price:2000 Name:Printer price:12500 Name:Laptop price:25000
You can also get sorting done on multiple fields. This code will get you namewise, pricelist in ascending order.
main.py
from mongoengine import *
con = connect('myDb')
class Product(Document):
productID = IntField(required=True)
name = StringField()
price = IntField()
for product in Product.objects.order_by('name','price'):
print ("Name:{} price:{}".format(product.name, product.price))
Output
Name:Laptop price:25000 Name:Printer price:12500 Name:Router price:2000 Name:Scanner price:5000 Name:TV price:50000
Advertisements