Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.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
Mongodb 为什么要覆盖system.profile集合中的查询_Mongodb - Fatal编程技术网

Mongodb 为什么要覆盖system.profile集合中的查询

Mongodb 为什么要覆盖system.profile集合中的查询,mongodb,Mongodb,我正试图收集mongodb上所有关于我的应用程序的查询。 因此,我已将分析级别设置为2,以便它将记录所有查询。 作为体系结构的一部分,一旦用户登录,mongodb上就会发生持续更新 但我观察到,系统.profile计数正在减少,我不知道为什么 > db.system.profile.count() 322 > db.system.profile.count() 351 > db.system.profile.count() 202 > db.system.profile.

我正试图收集mongodb上所有关于我的应用程序的查询。 因此,我已将分析级别设置为2,以便它将记录所有查询。 作为体系结构的一部分,一旦用户登录,mongodb上就会发生持续更新

但我观察到,
系统.profile
计数正在减少,我不知道为什么

> db.system.profile.count()
322
> db.system.profile.count()
351
> db.system.profile.count()
202
> db.system.profile.count()
136
> db.system.profile.count()
233
在我的例子中,为什么会覆盖查询

我是否有可能记录我的应用程序中发生的所有差异查询。


我之所以需要它,是因为我可以删除/添加我的一个集合上的一些索引。

system.profile是一个有上限的集合,默认大小为1MB,因此文档在自然(相对于插入时间戳)的基础上被清除,以便为新文档腾出空间

要增加system.profile集合的大小(例如10 MB),请执行以下操作:

1) 停止探查器:
db.setProfilingLevel(0)

2) Drop system.profile:
db.system.profile.Drop()

3) 手动创建更大的system.profile集合:
db.createCollection(“system.profile”,{capped:true,size:1024*1024*10})

4) 再次启用分析


如果一个1MB的集合平均可以容纳200-300个文档,那么新的设置可以容纳大约2000-3000个文档。根据需要增加system.profile的大小

这里是官方文档链接


您需要更改系统的集合大小。配置文件集合

回复很好,非常感谢。这对使用mongodb的人肯定会有帮助。