Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js mongodb.collection.find({})没有超过.limit(101)的操作_Node.js_Mongodb - Fatal编程技术网

Node.js mongodb.collection.find({})没有超过.limit(101)的操作

Node.js mongodb.collection.find({})没有超过.limit(101)的操作,node.js,mongodb,Node.js,Mongodb,节点mongodb版本2.0.43和mongodb外壳版本3.2.5 centos虚拟机 我有一个1600个文档(没有封顶)的集合(不是很大),它们都有标准的BSON\U ID 如果我这样做 db.collection('docs').find({}).limit(100).toArray(function(e,r){console.log('done');}); 我等待大约1/2秒的结果 但是,如果我这样做了 db.collection('docs').find({}).toArray(fu

节点mongodb版本2.0.43和mongodb外壳版本3.2.5

centos虚拟机

我有一个1600个文档(没有封顶)的集合(不是很大),它们都有标准的BSON\U ID

如果我这样做

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(期望结果为x2,限制为100,但它从未出现)

接下来,我缩小了范围,尝试限制150101110105103102

并发现结果在101极限后停止

这似乎毫无用处,对我来说是个真正的问题

如果
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
}
另一个假设:我认为对一个没有完成的查询不起作用

同样让我感到非常奇怪的是,查询速度并没有真正下降到101,然后什么也没有

为什么查询永远挂起,而不是变慢

mongodb.log没有显示任何错误

尝试了
db.command({profile:1,slowms:10})就在
查找
之前,但似乎没有出现任何配置文件


yum-update-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
也试过

重新启动服务器并启动mongod,但没有更改

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

npm install mongodb@2.2.4

我可以在您的模式或查询中看到任何不同之处,但我怀疑
console.log()
您是否可以删除控制台日志并尝试一次100多条记录您正在运行的MongoDB服务器版本是什么?MongoDB shell版本:3.2.5看起来与您的查询没有关系。为了理解这个问题,您可以在find查询中添加一些条件,比如db.docs.find({“r1”:3}).limit(somenumber).toArray()@ClementAmarnath,在调试问题之后放入
控制台.log
。它显示
find
未完成,因此
console.log
从不激发。你那样想真奇怪。