python - 在 PyMongo 中查询数组

标签 python html django mongodb pymongo

我正在尝试使用 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")

最佳答案

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

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

关于python - 在 PyMongo 中查询数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52360924/

相关文章:

django - 如何让下拉选择从 Django 模型填充模板中的 DataTables 表?

python - 压缩 numpy 数组的有效方法(python)

python - 自动化 Python 脚本

html - 样式化 Twitter 提要 - CSS 不会针对 .timeline-Tweet-text

html - 我可以制作一个具有多种效果的 SVG 滤镜吗?

python - Django 使用 IP 地址定义默认 View

Django:覆盖RelatedFieldWidgetWrapper

python - 带有 : in name in lxml 的标签

python - Django 模型中的 request.user

php - 如何在php中分隔日期