我正在尝试使用PyMongo查询一个数组,我正在获取所有值,而不是仅一个匹配'A A'
数组格式:
"tags": [
{
"tag": {
"name": "A A"
}
}
]
Python代码:
import pymongo
from pprint import pprint
myclient = pymongo.MongoClient("mongodb://00.00.00.0:27017")
mydb = myclient["dbName"]
mycol = mydb["thePage"]
for x in mycol.find({},{"_id": 0, "tags.tag.name": "A A"}):
pprint(x)
结果:
[{'tag': {'name': 'A A'}},
{'tag': {'name': 'B B'}},
{'tag': {'name': 'C C'}}]
预期结果:
{'name': 'A A'}
使用MongoDB获得所需的结果:
db.dbName.where("tags.tag.name").eq("A A")
答案 0 :(得分:0)
您需要先解构数组。 尝试这样做:
mycol.aggregate([
{'$unwind':'$tags'},
{'$match': {
'tags.tag.name':'A A',
}},
{'$project': {
'tags.tag.name': 1, '_id': 0
}},
])