mongodb db.collection.find({}) 不执行任何超过 .limit(101) 的操作

2024-01-10

node-mongodb 版本 2.0.43 和 MongoDB shell 版本:3.2.5

Centos虚拟机

我有一个(无上限)1600 个文档的集合(不是很大),并且所有文档都有标准的 BSON _ids

if I do

db.collection('docs').find({}).limit(100).toArray(function(e,r){console.log('done');});

我等待大约 1/2 秒的结果!

但是,如果我这样做

db.collection('docs').find({}).toArray(function(e,r){console.log('done');})

我在这里坐了 5-10 分钟就放弃了。


所以然后我将限制设置为200(期望结果只要限制100就需要x2,但它永远不会出现)

接下来我尝试限制 150,101,110,105,103,102 缩小范围

发现结果在101限制之后就停止了!

这似乎完全没有用处,对我来说这似乎是一个真正的问题。

If limit(200)花了两倍的时间,然后我会说这是我的查询中的性能问题,但它只是挂起并且 101 个结果令人不满意!一个糟糕的假设:更不用说我立即担心,如果任何查询有超过 100 个项目需要查看,我的应用程序可能会在任何时候挂起)

每个文档看起来都是这样

{
"_id": "578eaa1ae642785679cd98b0",
"linkid": "12633170",
"advertisercid": "4612127",
"websitename": "Car Rental 8",
"destinationurl": "https://www.carrental8.com/en/",
"who": "8027061-12633170-1467924618000",
"href": "http://www.tkqlhce.com",
"src": "http://www.awltovhc.com",
"r1": 3,
"r2": 44,
"r3": 24,
"r4": 58
}

另一个假设:我不认为剖析 https://stackoverflow.com/questions/11861909/how-do-i-enable-profiling-in-node-mongodb-native可以处理未完成的查询吗?

另外令我感到非常奇怪的是,查询速度并没有真正下降太多,直到 101 然后什么都没有。

为什么查询会永远挂起而不是变得更慢?

mongodb.log 显示没有任何错误

Tried db.command({ profile : 1, slowms : 10 });就在之前find但似乎没有发生任何情况。


yum 更新 mongodb-org 尽管它确实更新了,但没有做任何改变:mongodb-org-server、mongodb-org-mongos、mongodb-org-shell 和 mongodb-org-tools!

将完全相同的集合复制到专用服务器上

它在那里工作,而不是在虚拟机上

拍摄了虚拟机内存在挂起之前(蓝色)和之后(红色)的屏幕截图,但我没有看到明显的变化

将这两行添加到 /etc/security/limits.conf

root             soft    nofile          10000
root             hard    nofile          10000

也尝试过https://serverfault.com/questions/591812/how-to-set-ulimits-for-mongod https://serverfault.com/questions/591812/how-to-set-ulimits-for-mongod

重新启动服务器并启动 mongod 但没有任何变化!


由 Mongodb 工作人员 (Christian Amor Kvalheim) 修复会员建议升级

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

mongodb db.collection.find({}) 不执行任何超过 .limit(101) 的操作 的相关文章

随机推荐

  • Gradle - 从模块继承存储库

    首先 我解释一下我的项目设置 我使用 Android Studio 中使用的 项目 模块 一词 我的项目设置如下 LibraryProject gt 一个仅对我的库进行分组的项目 如有必要 我可以在其他项目中使用它 备份库 模块 数据库库
  • Flutter Android Studio version3.6 的“无法确定捆绑的 Java 版本”

    首先我得到错误是 android 许可证状态未知 所以我再次重新安装 他们抛出了两个错误 如下图所示 那么我该如何修复它呢 Flutter Channel stable v1 12 13 hotfix 8 on Microsoft Wind
  • 查询LDAP

    我以前没有使用过 LDAP 所以我有点迷失 我需要连接到 LDAP 源查找特定属性并更改它 该程序的输入是一个包含用户列表的 CSV 文件 该程序应该从 CSV 文件中读取 UID 找到 LDAP 中的记录并替换某个属性 我不知道如何做到这
  • Clang AST 解释

    我正在尝试解释 Clang AST 的部分内容 如下图所示 简而言之 我想做的是检查两个变量在不同的程序点是否相同 检查 AST 后 我注意到 AST 部分之间唯一的共同点是蓝色圆圈部分 谁能帮我看看这些十六进制数字在 AST 中对应什么
  • 迭代 git diff --name-only 结果时如何处理文件名中的空格

    我正在编写的脚本需要从 git diff 中遍历每个文件 但是 我不知道如何处理文件名中的空格 任何有空格的文件都会被分成 2 个文件 我知道他们需要被包裹起来 但我不知道在它进入之前如何实现这一点 param 当文件名中有空格时 我应该如
  • Python 3 有 LDAP 模块吗?

    我正在将一些 Java 代码移植到 Python 我们想使用 Python 3 但我在 Windows 中找不到适用于 Python 3 的 LDAP 模块 这迫使我们使用 2 6 版本 这很麻烦 因为其余代码已经是 3 0 格式 您可以使
  • Android - 如何创建意图来打开显示“帐户和同步设置”屏幕的活动

    我在导航到 帐户和同步设置 屏幕时看到了以下日志消息 但我对如何创建一个意图来导航到那里感到困惑 INFO ActivityManager 53 Starting activity Intent cmp com android provid
  • bootstrap container-fluid - 以正确的方式删除边距(溢出)

    如何从引导程序中删除所有边距container fluid类及其行 container fluid padding 0 这基本上满足了我的要求 但它为正文增加了 20px 溢出 那么我应该这样做 body html overflow x h
  • Delphi - 同步线程与框架

    下午好 我有一个框架 这个框架是我通过主窗体动态创建的 主要形式 Interface TInterface Create self with handlingInterface do begin Parent Form1 Left 0 To
  • 推荐的程序结构

    作为初学者 我已经制定了一些想法 但想向社区询问实施以下程序的最佳方法 它可以解码 8 种不同类型的数据文件 它们各不相同 但大多数相似 包含许多相似的字段 另外 有3代系统可以生成这些文件 每个都略有不同 但生成相同类型的文件 我需要制作
  • Typescript方法重载不同类型的参数但相同的响应

    我需要使用 TypeScript 重载一个方法 FooModel有 6 个参数 但 2 个字符串参数是唯一的强制参数 所以不是创建一个FooModel每次我想使用myMethod 我想超载myMethod并创建FooModel一旦进入那里
  • Rails 3 验证 IPv4 和 IPv6 格式

    我知道 IPv4 和 IPv6 的验证格式 但不确定如何将它们组合起来 所以至少一种格式应该是正确的 这是我的验证 validates src ip addr presence gt true uniqueness gt true form
  • 调用 php 中定义为对象变量的匿名函数[重复]

    这个问题在这里已经有答案了 我有如下 php 代码 class Foo public anonFunction public function construct this gt anonFunction function echo cal
  • Nodejs Scraper 不会移至下一页

    大家好 这是我其他问题的后续问题 我创建了一个 Nodejs Scraper 它似乎不想浏览页面 它停留在第一个页面 我的源代码如下 const rp require request promise const request requir
  • 如何验证 Blob 是否存在于已删除列表中

    以下代码将能够查看 blob 是否存在 var blob client GetContainerReference containerName GetBlockBlobReference blobFileName if blob Exist
  • 创建可变参数模板函数来测量和执行其他函数

    我目前正在尝试实现一个函数 该函数将任何其他函数和该函数的一组有 效输入值作为输入 并返回该函数的结果以及打印执行该函数所需的时间 这是我到目前为止所拥有的 template
  • Python 自定义日期时间(?) 格式处理

    假设我有一个代表时间和一周中的天数的字符串 例如 52300 表示一周的第 5 天 星期五 23 小时 00 分钟 我如何将其解析为时间或日期时间对象以添加 timedelta hours 3 并将其恢复为这种奇怪的格式 预期输出为 602
  • C语言使用Unix概念的目录监控代码

    在服务器上 进程监视 Unix 文件系统中的文件 如果客户端发送要监视的文件名 则服务器必须向客户端发送该文件是否被更改或删除的报告 对于服务器 客户端通信 我们应该使用消息队列或套接字 对于文件中的每个更改 服务器都必须通知该更改 对于所
  • 在 MacOS 上将 OpenSSL 更新到 1.1.1

    新的 LTS1 1 1 https www openssl org blog blog 2018 09 11 release111 的版本OpenSSL https github com openssl openssl is out 我如何
  • mongodb db.collection.find({}) 不执行任何超过 .limit(101) 的操作

    node mongodb 版本 2 0 43 和 MongoDB shell 版本 3 2 5 Centos虚拟机 我有一个 无上限 1600 个文档的集合 不是很大 并且所有文档都有标准的 BSON ids if I do db coll