البحث عن Python MongoDB
في MongoDB نستخدم طريقتين find and findOne للعثور على البيانات في مجموعة.
تمامًا مثل عبارة SELECT المستخدمة للعثور على البيانات في جدول في قاعدة بيانات MySQL.
ابحث عن واحد
لتحديد البيانات من مجموعة في MongoDB ، يمكننا استخدام
find_one()
الطريقة.
تقوم find_one()
الطريقة بإرجاع التواجد الأول في التحديد.
مثال
ابحث عن المستند الأول في مجموعة العملاء:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
x = mycol.find_one()
print(x)
جد كل
لتحديد البيانات من جدول في MongoDB ، يمكننا أيضًا استخدام
find()
الطريقة.
تقوم find()
الطريقة بإرجاع جميع التكرارات في التحديد.
المعلمة الأولى find()
للأسلوب هي كائن الاستعلام. في هذا المثال ، نستخدم كائن استعلام فارغ ، والذي يحدد جميع المستندات في المجموعة.
لا توجد معلمات في طريقة البحث () تمنحك نفس نتيجة SELECT * في MySQL.
مثال
أعد جميع المستندات في مجموعة "العملاء" ، واطبع كل مستند:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find():
print(x)
إرجاع بعض الحقول فقط
المعلمة الثانية find()
للطريقة هي كائن يصف الحقول المراد تضمينها في النتيجة.
هذه المعلمة اختيارية ، وفي حالة حذفها ، سيتم تضمين جميع الحقول في النتيجة.
مثال
قم بإرجاع الأسماء والعناوين فقط ، وليس _ids:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "_id": 0, "name": 1, "address": 1 }):
print(x)
غير مسموح لك بتحديد قيمتي 0 و 1 في نفس الكائن (إلا إذا كان أحد الحقول هو الحقل _id). إذا حددت حقلاً بالقيمة 0 ، فستحصل جميع الحقول الأخرى على القيمة 1 ، والعكس صحيح:
مثال
سيستبعد هذا المثال "العنوان" من النتيجة:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "address": 0 }):
print(x)
مثال
تحصل على خطأ إذا حددت كلاً من القيم 0 و 1 في نفس الكائن (باستثناء إذا كان أحد الحقول هو الحقل _id):
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "name": 1, "address": 0 }):
print(x)