python - 使用 pymongo,如何找到所有文档,使得每个文档中的嵌入列表包含大于 X 个元素?

标签 python mongodb pymongo

我想在 MongoDB 上运行一个查找查询,搜索集合中的一组文档,其中每个文档包含一个元素列表,并且仅返回列表中元素数量较大的文档比X。

这将返回 len(messages) == X 的所有文档:

db.log.find({'messages':{'$size':X}})

但是如何获取 len(messages) >= X 的所有文档?

最佳答案

在 MongoDB 2.2+ 中,您可以利用以下事实:您可以在查询对象键中使用数字数组索引来执行此操作:

# X is the minimum number of messages
X = 3
db.log.find({'messages.' + str(X-1): {'$exists': 1}})

关于python - 使用 pymongo,如何找到所有文档,使得每个文档中的嵌入列表包含大于 X 个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16525587/

相关文章:

python - 异步生成器不是迭代器?

python - 预登录流程!...instabot 中发生错误

javascript - 为什么向我的 jade 模板添加 CSS 链接会使我的 Node 应用程序崩溃?

python-3.x - 无法使用类对象中的ssh隧道建立与远程mongoDB服务器的连接

python - PyMongo:批量插入新集合时出现 NatType ValueError

python - crontab tee 命令不会将 stdout 写入 txt 文件,而是清除它 [python 脚本]

python - 在 Telegram Bot 上发送本地托管的照片

java - 查询嵌套文档数组以获得字段的最大值

javascript - MongoDB-Stitch。填充方法或类似方法?

mongodb - 根据日期范围查找文档可以在 mongodb shell 中使用,但不能在 pymongo 中使用