目录

Python MongoDB 查找


在 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)