轻松上手,快乐学习!

Python MongoDB 查找


在MongoDB中,我们使用findfindOne方法来查找集合中的数据。 就像在MySQL数据库中使用SELECT语句查找表的数据一样。

查找一条文档

我们可以使用 find_one()方法,从MongoDB的集合中查找文档。 find_one()方法返回选择中的第一个匹配项。

实例

从“customers”集合中查找一条文档:
import pymongo

myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]

x = mycol.find_one()

print(x)
运行实例 »

查找所有文档

要从MongoDB中的表中查找文档,我们也可以使用该 find()方法。 find()方法返回查找到的所有匹配项。 find()方法的第一个参数是查询对象。在此实例中,我们使用一个空查询对象,该对象查找集合中的所有文档。

实例

返回“customers”集合中的所有文档,并打印每个文档:
import pymongo

myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]

for x in mycol.find():
  print(x)
运行实例 »

只返回一些字段

find()方法的第二个参数是描述要包含在结果中的字段的对象。 此参数是可选的,如果省略,则所有字段都将包含在结果中。

实例

只返回name和address,而不是_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,反之亦然:

实例

从结果中排除“address”:
 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)