Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在PyMongo中查询数组_Python_Html_Django_Mongodb_Pymongo - Fatal编程技术网

Python 在PyMongo中查询数组

Python 在PyMongo中查询数组,python,html,django,mongodb,pymongo,Python,Html,Django,Mongodb,Pymongo,我试图使用PyMongo查询一个数组,我得到的是所有的值,而不仅仅是一个匹配的'A' 数组格式: "tags": [ { "tag": { "name": "A A" } } ] Python代码: import pymongo from pprint import pprint myclient = pymongo.MongoClient("

我试图使用PyMongo查询一个数组,我得到的是所有的值,而不仅仅是一个匹配的'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")

首先需要解构数组。 尝试这样做:

mycol.aggregate([
    {'$unwind':'$tags'},
    {'$match': {
        'tags.tag.name':'A A',
    }},
    {'$project': {
        'tags.tag.name': 1, '_id': 0
    }},
])

您需要一个查询过滤器<代码>mycl.find({“tags.tag.name”:“A”})@styvane这不起作用。它不仅返回名称,还返回其他变量的所有结果请参见此处的投影
db.collection.find({“tags.tag.name”:“A A”},{“tags”:{$elemMatch:{“tag.name”:“A”}}})
@AnthonyWinzlet我在
$elemMatch
附近得到一个
无效语法
。我的代码:
myQuery={“tags.tag.name”:“A A”},{“tags”:{$elemMatch:{“tag.name”:“A”}}}
对于mycl.find({},myQuery)中的x:
pprint(x)
你也这么做了吗?这在我的代码中是什么?对不起,我对Python和MongoDb@newbierp用这个替换你的
mycl.find
行。我收到一条
self.\u error\u message(选择器))pymongo.errors.ServerSelectionTimeoutError:00.00.0:27017:timed out
error你的mongo服务有问题。你是从终端开始mongo服务的吗?对不起,那是我的错。我修好了。但是我现在有一个新错误:
pymongo.errors.OperationFailure:path选项到$unwind stage应该以“$”为前缀:tags