在 MongoDB 中我们使用find()
和find_one()
在集合中查找数据的方法。
就像选择语句用于在 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()
方法是一个查询对象。在此示例中,我们使用一个空查询对象,它选择集合中的所有文档。
find() 方法中没有参数给出的结果与选择 *在 MySQL 中。
返回 "customers" 集合中的所有文档,并打印每个文档:
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,反之亦然:
此示例将从结果中排除"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)
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!