Python MongoDB 查找
在 MongoDB 中,我们使用 find()
和 find_one()
方法在集合中查找数据。
就像使用 SELECT 语句在 MySQL 数据库中表中查找数据一样。
查找一个
要从 MongoDB 中的集合中选择数据,我们可以使用 find_one()
方法。
find_one()
方法返回选择中的第一个匹配项。
示例
在 customers 集合中找到第一个文档
import pymongo
myclient = pymongo.MongoClient("mongodb://127.0.0.1:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
x = mycol.find_one()
print(x)
运行示例 »
查找所有
要从 MongoDB 中的集合中选择数据,我们也可以使用 find()
方法。
find()
方法返回选择中的所有匹配项。
find()
方法的第一个参数是查询对象。在本例中,我们使用一个空查询对象,它选择集合中的所有文档。
在 find() 方法中不使用参数与在 MySQL 中使用 SELECT * 的结果相同。
示例
返回 "customers" 集合中的所有文档,并打印每个文档
import pymongo
myclient = pymongo.MongoClient("mongodb://127.0.0.1:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find()
print(x)
运行示例 »
仅返回某些字段
find()
方法的第二个参数是一个对象,用于描述要包含在结果中的字段。
此参数是可选的,如果省略,结果将包含所有字段。
示例
仅返回名称和地址,不返回 _ids
import pymongo
myclient = pymongo.MongoClient("mongodb://127.0.0.1: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://127.0.0.1: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://127.0.0.1:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "name": 1, "address": 0 })
print(x)