pymongo多结果多列查找
时间: 2023-10-02 17:10:20 浏览: 52
如果你需要在 MongoDB 中查询多个结果和多个列,可以使用 PyMongo 的 `find()` 方法和投影操作符。
例如,假设你有一个名为 `users` 的集合,其中包含以下文档:
```
{
"_id": ObjectId("60c05c44aeb5e4e2b9a4c06f"),
"name": "Alice",
"age": 25,
"email": "alice@example.com"
},
{
"_id": ObjectId("60c05c44aeb5e4e2b9a4c070"),
"name": "Bob",
"age": 30,
"email": "bob@example.com"
},
{
"_id": ObjectId("60c05c44aeb5e4e2b9a4c071"),
"name": "Charlie",
"age": 35,
"email": "charlie@example.com"
}
```
如果你需要查询所有用户的姓名和电子邮件地址,可以使用以下代码:
```python
import pymongo
client = pymongo.MongoClient('mongodb://localhost:27017/')
db = client['mydatabase']
collection = db['users']
result = collection.find({}, {'name': 1, 'email': 1})
for r in result:
print(r)
```
输出结果如下:
```
{'_id': ObjectId('60c05c44aeb5e4e2b9a4c06f'), 'name': 'Alice', 'email': 'alice@example.com'}
{'_id': ObjectId('60c05c44aeb5e4e2b9a4c070'), 'name': 'Bob', 'email': 'bob@example.com'}
{'_id': ObjectId('60c05c44aeb5e4e2b9a4c071'), 'name': 'Charlie', 'email': 'charlie@example.com'}
```
在上面的代码中,`find()` 方法的第一个参数是一个空字典,表示查询所有文档。第二个参数是一个字典,指定投影操作符,其中键为列名,值为 1 表示要包含该列,而值为 0 表示要排除该列。在这个例子中,我们选择了姓名和电子邮件地址这两列,因此输出结果只包含这两列的值。