Python MongoDB 查找

在 MongoDB 中,我们使用 find 和 findOne 方法来查找集合中的数据。

就像 SELECT 语句用于查找 MySQL 数据库中的表中的数据一样。

查找一项

如需在 MongoDB 中的集合中选取数据,我们可以使用 find_one() 方法。

find_one() 方法返回选择中的第一个匹配项。

مثال

查找 customers 集合中的首个文档:

ورود کردن pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
x = mycol.find_one()
چاپ(x)

اجرای مثال

查找全部

如需从 MongoDB 中的表中选取数据,我们还可以使用 find() 方法。

find() 方法返回选择中的所有匹配项。

find() 方法的第一个参数是 query 对象。在这个例子中,我们用了一个空的 query 对象,它会选取集合中的所有文档。

find() مزید کالمیٹر کو فیر سے ملاحظہ کیا جاتا ہے، جس سے MySQL میں SELECT * کی طرح کا نتائج مل سکتا ہے.

مثال

"customers" مجموعے میں تمام دستاویزات واپس کردیتا ہے اور ہر دستاویز کو پرنٹ کردیتا ہے:

ورود کردن pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
برائے x in mycol.find():
  چاپ(x)

اجرای مثال

فقط کچھ کالمس واپس کردیتا ہے

find() مزید کالمیٹر کا دوسرا پارامتر، جس میں نتائج میں شامل کئے جانے والے کالمس کا معلوم کیا جاتا ہے، ہوتا ہے。

این پارامتر اختیاری است، اگر مشخص نشود، تمام فیلدها در نتایج شامل خواهند شد.

مثال

فقط نام و آدرس را بازمی‌گرداند، نه _ids:

ورود کردن pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
برای x در mycol.find({},{ "_id": 0, "name": 1, "address": 1 }):
  چاپ(x)

اجرای مثال

نمی‌توان همزمان در یک اشیاء واحد 0 و 1 مشخص کرد (مگر اینکه یکی از فیلدها _id باشد). اگر فیلدی با مقدار 0 مشخص شود، تمام فیلدهای دیگر مقدار 1 خواهند داشت و برعکس:

مثال

این مثال "address" را از نتایج حذف می‌کند:

ورود کردن pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
برای x در mycol.find({},{ "address": 0 }):
  چاپ(x)

اجرای مثال

مثال

اگر در یک اشیاء واحد همزمان 0 و 1 مشخص شود، خطا رخ می‌دهد (مگر اینکه یکی از فیلدها _id باشد):

ورود کردن pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
برای x در mycol.find({},{ "name": 1, "address": 0 }):
  چاپ(x)