如何从MongoDB中删除system.profile集合?

Nis*_*ang 37 profiling mongodb

我正在分析MongoDB中的数据库查询.我按照这个链接.我试图从集合system.profile中删除所有数据,以便我可以再次开始对不同的查询进行基准测试.我尝试了以下代码,但它给出了一个错误

控制台语法

> db.system.profile.remove({})
Run Code Online (Sandbox Code Playgroud)

错误

cannot delete from system namespace
Run Code Online (Sandbox Code Playgroud)

如何删除该集合中的所有数据?如果那是不可能的,我怎么能从头开始分析?

Dan*_*ski 89

首先,通过将其级别设置为0来关闭性能分析.

db.setProfilingLevel(0)
Run Code Online (Sandbox Code Playgroud)

然后你可以简单地删除该集合.

db.system.profile.drop()
Run Code Online (Sandbox Code Playgroud)

现在你可以自由地开始了.


GaT*_*mas 17

要想接受已接受的答案,有时候只需一行就可以了:

db.setProfilingLevel(0); db.system.profile.drop(); db.setProfilingLevel(2);
Run Code Online (Sandbox Code Playgroud)

我也发现将system.profile的大小设置为10MB(或更大)而不是默认的1MB是非常有用的:

db.setProfilingLevel(0); db.system.profile.drop(); db.createCollection("system.profile", {capped: true, size: 10 * 1024 * 1024}); db.setProfilingLevel(2);
Run Code Online (Sandbox Code Playgroud)