Python மூலம் MongoDBயில் தரவுகளை வரிசைப்படுத்துதல் (Sort)
MongoDBயில் தரவுகளை நம் தேவைக்கு ஏற்ப வரிசைப்படுத்தலாம். Python மற்றும் pymongo மாடியூலைப் பயன்படுத்தி MongoDBயில் உள்ள ஆவணங்களை (documents) வரிசைப்படுத்துவது எளிதாகும். இந்தக் கட்டுரையில், MongoDBயில் Python மூலம் தரவுகளை எப்படி வரிசைப்படுத்துவது என்பதைக் காண்போம்.
MongoDB மற்றும் Python அமைப்புகள்:
- MongoDB நிறுவுதல்
உங்கள் கணினியில் MongoDBயை நிறுவ பின்வரும் கட்டளையை இயக்கவும்:
sudo apt-get install -y mongodb
- Python pymongo மாடியூலை நிறுவுதல்
pymongo மாடியூலை MongoDBயுடன் Python இணைக்க தேவையாகும். இதனை நிறுவ:
pip install pymongo
- MongoDB சேவையை துவங்குதல்
MongoDB சேவையை பின்வரும் கட்டளையால் துவங்கலாம்:
sudo service mongod start
Python மூலம் MongoDBயில் தரவுகளை வரிசைப்படுத்தல்:
MongoDBயில் உள்ள ஆவணங்களை Python கொண்டு ascending அல்லது descending வரிசையில் வரிசைப்படுத்தலாம்.
1. Ascending வரிசையில் தரவுகளை வரிசைப்படுத்துதல்
from pymongo import MongoClient
# MongoDBயுடன் இணைவதற்கான Client உருவாக்கம்
client = MongoClient('localhost', 27017)
# 'SchoolDB' என்ற தரவுத்தொகுப்பு தேர்வு செய்தல்
db = client['SchoolDB']
# 'students' என்ற ஆவணத் தொகுப்பு (collection) தேர்வு செய்தல்
collection = db['students']
# மாணவர்களின் விவரங்களை வயது அடிப்படையில் ascending (ஏறும்) வரிசையில் பெறுதல்
students_sorted = collection.find().sort("age", 1)
# மாணவர் விவரங்களை அச்சிடுதல்
for student in students_sorted:
print(student)
விளக்கம்:
sort("age", 1)
பக்கமூலம்age
என்ற புலத்தில் மாணவர்களின் விவரங்களை ascending வரிசையில் வரிசைப்படுத்துகிறது. 1 என்பது ascending வரிசையை குறிக்கின்றது.
2. Descending வரிசையில் தரவுகளை வரிசைப்படுத்துதல்
# மாணவர்களின் விவரங்களை வயது அடிப்படையில் descending (இறங்கும்) வரிசையில் பெறுதல்
students_sorted_desc = collection.find().sort("age", -1)
# மாணவர் விவரங்களை அச்சிடுதல்
for student in students_sorted_desc:
print(student)
விளக்கம்:
sort("age", -1)
பக்கமூலம்age
என்ற புலத்தில் மாணவர்களின் விவரங்களை descending (இறங்கும்) வரிசையில் வரிசைப்படுத்துகிறது. -1 என்பது descending வரிசையை குறிக்கின்றது.
3. பல புலங்களில் (fields) தரவுகளை வரிசைப்படுத்துதல்
நாம் ஒரே நேரத்தில் பல புலங்களில் தரவுகளை வரிசைப்படுத்தலாம்:
# வயது மற்றும் பெயர் அடிப்படையில் தரவுகளை வரிசைப்படுத்துதல்
students_multi_sort = collection.find().sort([("age", 1), ("name", 1)])
# மாணவர் விவரங்களை அச்சிடுதல்
for student in students_multi_sort:
print(student)
இந்தக் குறியீட்டில், முதலில் age
அடிப்படையில் ascending வரிசையில், அதன்பிறகு name
அடிப்படையில் ascending வரிசையில் மாணவர்கள் வரிசைப்படுத்தப்படுகின்றனர்.
முடிவு:
Python மற்றும் pymongo மூலம் MongoDBயில் உள்ள ஆவணங்களை எளிதாக ascending மற்றும் descending வரிசைகளில் வரிசைப்படுத்த முடியும். MongoDBயின் sort()
செயலியைப் பயன்படுத்தி தரவுகளை பல்வேறு புலங்களில் விருப்பமாக வரிசைப்படுத்தலாம்.