【问题标题】:How can I get array length in pymongo?如何在 pymongo 中获取数组长度?
【发布时间】:2017-06-19 06:15:07
【问题描述】:

我看了这个帖子How can I get the length of a MongoDb array field?

我尝试了这些代码:

results=db.posts.find()
results[0].comments.length

我确定 post 和 cmets 存在。但它不起作用。它会返回一个错误:

AttributeError: 'comments' object has no attribute 'length'

如何解决?

【问题讨论】:

  • 这部分代码在Jinja2中使用。并且有一个过滤器来计算jinja2中的数组长度。它是 {{results[0].cmets|length}}

标签: arrays mongodb pymongo


【解决方案1】:

Pymongo 将文档作为字典返回。 find() 返回一个字典数组。你需要:

len(results[0]['comments'])

【讨论】:

  • 很高兴你能成功。 Jinja2 允许您将 dict 项目作为属性访问,因此您应该能够{{ results[0].comments | length }}
【解决方案2】:

如果您只想要数组的长度,请执行以下操作:

result = client.aggregate([
    {
        '$project': {
            'my_array_length': {'$size': '$my_array'}
        }
    }
])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-09-23
    • 2012-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-14
    • 1970-01-01
    相关资源
    最近更新 更多