为什么 PyMongo count_documents 比 count 慢?

2023-12-23

In db['TF']我有大约 6000 万条记录。

我需要获取记录的数量。

如果我跑db['TF'].count(),它立即返回。

如果我跑db['TF'].count_documents({}),我花了很长时间才得到结果。

但是,那count方法将被弃用。

那么,在使用时如何快速获取数量呢?count_documents?我错过了一些论点吗?

我已阅读文档和代码,但没有找到任何结果。

多谢!


这不是关于 PyMongo 而是关于 Mongo 本身。

count是 Mongo 原生函数。它并没有真正计算所有文档。每当您在 Mongo 中插入或删除一条记录时,它都会缓存集合中的记录总数。然后当你跑步时count,Mongo 将返回该缓存值。

count_documents使用查询对象,这意味着它必须循环遍历所有记录才能获得总计数。因为您没有传递任何参数,所以它将必须运行所有 6000 万条记录。这就是为什么它很慢。

基于@Stennie 评论

您可以在 PyMongo 3.7+ 中使用estimated_document_count() 返回基于集合元数据的快速计数。原始的 count() 已被弃用,因为根据是否提供查询条件,行为会有所不同(估计与实际计数)。新的驱动程序 API 更注重结果

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 PyMongo count_documents 比 count 慢? 的相关文章

  • Mongoose 选择要从 findOneAndUpdate 返回的字段

    在 Nodejs 中使用 Mongoose 您可以使用 find 返回一些字段 例如 User findOne id 132324 first name 1 last name 1 exec 但我似乎无法弄清楚如何使用 findOneAnd
  • 为任何更新查询增加 Mongoose 文档版本的简单方法?

    我想开始利用 Mongooses 文档版本控制 v key 我在实际增加版本值时遇到了问题 然后我发现您必须添加this increment 执行查询时 有没有办法自动递增 目前 我只是将其添加到pre用于更新类型查询的中间件 module
  • MongoDB的ObjectId是如何生成的?

    他们是吗somewhat随机的 我的意思是 人们能够将它们分开吗 它们不是随机的 可以很容易地预测 BSON ObjectID 是一个 12 字节值 由 4 字节时间戳组成 自纪元以来的秒数 一个 3 字节 机器 ID 2 字节进程 ID
  • 致命错误 - 未找到“Mongo”类

    我正在尝试执行此操作 但我收到以下错误 致命错误 在 C wamp www 中找不到类 Mongo Info PHP 5 38 MongoDB mongodb win32 i386 2 0 2 MongoDB PHP 驱动程序 mongo
  • mongodb 正在运行吗?

    我已经在我的 Unix 服务器上安装了 Mongodb 和 PHP 驱动程序 我的问题是如何判断 Mongodb 是否正在运行 是否有一个简单的命令行查询来检查状态 如果我从外壳程序启动一次 如果我退出外壳程序 它会继续运行 情况似乎并非如
  • 如何在java中创建mongoDB objectid

    参考帖子如何使用 Java 将数组添加到 MongoDB 文档 https stackoverflow com questions 15371839 how to add an array to a mongodb document usi
  • 环回关系不填充对象 ID 数组

    到目前为止我有 2 个模型 工作流程核心 工作流程步骤 工作流核心有一个steps属性 该属性是数组类型并且包含1 多个步骤 当呼叫接通时工作流程核心响应正文不会使用实际步骤对象填充步骤数组 工作流程核心 json name workflo
  • 将 Django +1.10 与 MongoDB 连接

    在过去的几个月里 有人为 MongoDB 更换了 Django 1 10 中的默认数据库引擎吗 我在谷歌上得到的所有信息都是六四年前的 最常见的结果包括mongodb 引擎这需要Django nonrel 来自 Django 1 5 的一个
  • 为关联数组选择哪种映射类型?学说ODM

    我有一个关于 顺便说一句 真的很棒 Doctrine ODM 的简单问题 假设您有一个类似以下的文档 Document class Test Id public id WHICHTYPE public field array 现在我想存储一
  • MongoDB 如何选择候选计划

    我的应用程序中的查询速度很慢 创建两个索引后 它在本地数据库中使用它们以获得更好的性能 但是当我部署在生产数据库上时 它仍然使用原始索引 下面是我所做的 集合中的属性tasks team id project id created by a
  • 为什么 Mongohint 可以使查询运行速度提高 10 倍?

    如果我使用explain 从shell运行mongo查询 获取所使用的索引的名称 然后再次运行相同的查询 但使用hint 指定要使用的相同索引 解释计划中的 millis 字段是显着下降 例如 没有提供任何提示 gt gt db event
  • 相同的单词但不同的 unicode 字符

    我在 Windows 上使用 Python 构建了一个关于越南餐馆的问答应用程序 要编写越南语字符 我需要使用 Unicode 首先 我从使用 HTML charset utf 8 的 TripAdvisor 网站克隆数据并构建我的 Mon
  • 将 Mongodb 与 Android 应用程序连接

    我正在尝试构建 Android 应用程序来连接到 MongoDB 一直被这个问题困扰 MongoDB 是可访问的 但没有安全性 可以通过手机使用 Mono Explorer 添加数据 public void sendMessage View
  • 国外收藏的查找和排序

    所以我有一个收藏users 并且此集合中的每个文档以及其他属性都有另一个集合中文档的 id 数组 workouts 集合中的每个文档workouts有一个名为date 这就是我想要得到的 对于特定用户 我想要获取属于该用户的锻炼的 work
  • Java 驱动程序相当于 JavaScript shell 的 Object.bsonsize( doc )?

    我想知道 Java 驱动程序相当于 Mongo JavaScript shell 的 Object bsonsize doc 方法 例如 执行以下操作的 Java 代码是什么 bobk mbp bobk mongo MongoDB shel
  • 如何确定 STARTUP2 BTree Bottom Up 步骤的总体进度?

    确定新次要成员的初始同步 STARTUP2 的索引构建阶段的总体进度的好方法是什么 在我的例子中 索引构建阶段需要很长时间 几天 如果能够看到它在这个过程中的进度 那就太好了 日志输出如下所示 Tue Jan 27 20 04 45 006
  • 如何同时使用 $gt 和 $lte 优化 MongoDB 查询?

    我有以下查询 有点像反向范围查找 db ip ranges find and start ip num lte 1204135028 end ip num gt 1204135028 当仅使用 lte 标识符运行时 查询会立即返回 但是当我
  • mongodb在单个操作中进行多个聚合

    我有一个包含以下文档的项目集合 item i1 category c1 brand b1 item i2 category c2 brand b1 item i3 category c1 brand b2 item i4 category
  • Node.js 找不到模块“mongodb”

    我正在经历我的第一个 Node js 项目 我已经安装了 mongodb 有一个 server js 文件 当我尝试运行它时 出现此错误 module js 340 throw err Error Cannot find module mo
  • 何时对 MongoDB 集合调用 EnsureIndex?

    我什么时候应该打电话ensureIndex 插入单条记录之前 插入单条记录之后 或者调用之前find 看来我的评论有点被误解了 所以我会澄清一下 当你调用它时并不重要只要在第一次调用 find 之前的某个时刻调用它即可 换句话说 什么时候创

随机推荐

  • 通过Python创建文件和目录

    我在创建目录然后打开 创建 写入指定目录中的文件时遇到问题 我似乎不清楚原因 我正在使用 os mkdir 和 path chap name print Path chap path For debugging purposes if no
  • 使用http而不是https的redirect_uri

    我正在使用 spring stack Spring Boot 2 0 1 RELEASE 来创建一个通过 OAuth2 将用户身份验证 注册委托给 Facebook 的网站 当我单击 使用 facebook 登录 按钮时 我会被重定向到 F
  • jQuery 查找并替换第二个

    我想知道如何查找和替换 div 中的某些文本 但我想查找并替换该文本的第二次出现 例如 您刚刚添加了一个项目 请删除该项目 所以我想找到第二个 项目 并将其替换为我选择的任何文本 JS var compareCount compareWid
  • SQL日期格式和引用混乱

    我有以下测试记录 以下查询结果为 0 条记录 SELECT FROM events dates WHERE start date 21 12 2014 但以下查询结果为 1 条记录 SELECT FROM events dates WHER
  • 用 | 分割字符串java中的分隔符

    我有一个像这样的字符串 1 value 我想拆分该字符串并选择 作为分隔符 我的代码如下所示 String separated line split 我得到的是一个包含所有字符作为一个条目的数组 separated 0 separated
  • 为什么FolderBrowserDialog对话框不滚动到选定的文件夹?

    如该屏幕截图所示 所选文件夹不在视图中 需要向下滚动才能查看所选文件夹 同一对话框显示在不同计算机上可见的选定文件夹 我在两台装有 Windows 7 的计算机上运行它 它在一台计算机上运行正常 但在第二台计算机上运行不正常 它看起来与 W
  • 应用程序委托 - Cocoa

    我想将 applicationDidFinishLaunching 合并到我的可可委托中 我该怎么做 在 iphone SDK 上 applicationDidFinishLaunching 已经在应用程序委托中 但在制作我的 mac 应用
  • 如何对数据进行分箱以删除低计数?

    我想出于保护隐私的目的使用装箱来处理数据 数据涉及数字整数 并且必须以频率高于最小值的方式进行分箱 x 我还想最小化垃圾箱的宽度 以尽可能多地保留数据 最小化 bin 的宽度并没有严格定义 因为这只是避免不必要的数据丢失的一般目标 由于整数
  • 使用 SkiaSharp 调整大小时 iPhone 图像方向错误

    我在 Xamarin Forms 项目上使用 SkiaSharp 中的 SKBitmap Resize 方法来调整图像大小以供显示 我遇到的问题是在 iOS 上拍照时 当纵向拍摄照片时 图像显示为右侧朝上 在 Android 上拍照 从 A
  • 如何在jasper报告中使用divide()方法?

    我使用 iReport1 3 3 工具创建 pdf 和 xls 模板 我的问题是下面的表达式 V strloanNo divide V loanCalculation 我需要除以两个变量 但我没有得到预期的结果 它显示 null 值 大家有
  • 递归调用异步 API 调用

    我正在尝试从每次调用仅返回 1000 个项目的 API 中获取数据 并且我想递归地执行此操作 直到获得所有数据 我事先不知道总共有多少件物品 所以每次打电话后我都必须检查 如果调用是同步的 我会使用如下内容 function fetch a
  • 如何查找大括号之间的多行文本?

    我有下一个输入字符串 ANIM NAME KEY Index 26 AFrames 1 0x301C AF 0x201C 1 0 0 FREE ROTATE 0 FREE SCALE XY 100 100 我怎样才能得到两个花括号之间的整个
  • java.sql.SQLException:列计数与第 1 行错误的值计数不匹配[重复]

    这个问题在这里已经有答案了 我试图在表中插入数据 但它显示以下错误 java sql SQLException 列计数与第 1 行的值计数不匹配 我已经搜索了这个错误并尝试了所有解决方案 但仍然无法使其工作 这是我的代码 类 html
  • 从 data.frame 转换为数字矩阵时,为什么值会发生变化?

    我需要将数据框转换为数字矩阵 但是 当我使用data frame函数中 小数被转换为不同的数字 我不知道为什么 有人可以告诉我发生了什么事吗 gt head x 1 5 TCGA AA 3520 01A 01R 0821 07 TCGA A
  • 将 pandas 中的多索引与单索引数据帧合并

    我有两个数据框 df1 是多索引的 value first second a x 0 471780 y 0 774908 z 0 563634 b x 0 353756 y 0 368062 z 1 721840 and df2 value
  • 在 col 元素中声明事件对表的单元格有何影响?

    当在 HTML 表格的 col 元素中声明事件 例如 onclick 时 该事件是否会影响 col 元素引用的单元格 该事件是否被忽略 还会发生其他事情吗 很好的问题 The spec http www w3 org TR html4 st
  • 使用python进行视频编辑:向有声视频添加背景音乐

    我想在 python 中将背景音乐添加到视频文件 mp4 中 我查看了网络并使用 python 的 moviepy 做了一些技巧 但我没有找到一种将背景音乐添加到已包含音乐的视频文件中的方法 有什么想法如何做到这一点吗 编辑以下 Anil
  • 如果我们仅更改数据注释的 Display 属性,是否还需要运行 Add-Migration

    Note 这个问题与迁移 EF Core 与 ASP NET Core MVC https learn microsoft com en us aspnet core data ef mvc migrations 下面我只需要将显示注释中的
  • NodeJS - 基于 SSL 的 SocketIO 和 websocket 传输

    我有一个 NodeJS socketIO 服务器 它有客户端从 JS PHP 和 Python 监听 当通信通过普通 HTTP WS 通道进行时 它就像一个魅力 现在 当我尝试保护此通信时 Websocket 传输不再工作 它退回到 xhr
  • 为什么 PyMongo count_documents 比 count 慢?

    In db TF 我有大约 6000 万条记录 我需要获取记录的数量 如果我跑db TF count 它立即返回 如果我跑db TF count documents 我花了很长时间才得到结果 但是 那count方法将被弃用 那么 在使用时如