use*_*249 5 python mongodb pymongo
我正在尝试使用 pymongo 根据 MongoDB 中的两个条件进行简单查询。
我正在使用教程文档中的示例餐厅数据集。我有:
from pymongo import MongoClient
import pymongo
import pandas as pd
client = MongoClient()
db = client.test
cursor = db.restaurants.find({"$and":[{'borough':"Manhattan"},{"grades":{'grade':"A"}}]}
for record in cursor:
print record
Run Code Online (Sandbox Code Playgroud)
我只是想打印曼哈顿所有等级为“B”的餐厅。但这没有任何结果。我也尝试过
cursor = db.restaurants.find({"borough":"Manhattan", "grades.grade":"B"})
Run Code Online (Sandbox Code Playgroud)
但这只会按第一个条件进行过滤,而不会按“等级”进行过滤。这正是文档中的布局方式,但我无法让它工作。
问题出在第二种情况。grades是Grades 的子数组,使用$elemMatch:
db.restaurants.find({"$and": [{"borough": "Manhattan"}, {"grades": {"$elemMatch": {"grade": "A"}}}]})
Run Code Online (Sandbox Code Playgroud)
对我有用。
| 归档时间: |
|
| 查看次数: |
12839 次 |
| 最近记录: |