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

如何从MongoDB中删除system.profile集合?,mongodb,profiling,Mongodb,Profiling,我正在分析MongoDB中的db查询。我跟着林克。我正在尝试从collection system.profile中删除所有数据,以便再次开始对不同的查询进行基准测试。我尝试了以下代码,但它给出了一个错误 控制台语法 > db.system.profile.remove({}) 错误 cannot delete from system namespace 如何从该集合中删除所有数据?如果不可能,如何从一开始就开始分析?首先,通过将其级别设置为0来关闭分析 db.setProfilingL

我正在分析MongoDB中的db查询。我跟着林克。我正在尝试从collection system.profile中删除所有数据,以便再次开始对不同的查询进行基准测试。我尝试了以下代码,但它给出了一个错误

控制台语法

> db.system.profile.remove({})
错误

cannot delete from system namespace

如何从该集合中删除所有数据?如果不可能,如何从一开始就开始分析?

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

db.setProfilingLevel(0)
然后,您可以简单地删除集合

db.system.profile.drop()

现在,您可以自由地从头开始了。

要重复已接受的答案,有时可以在一行中进行:

db.setProfilingLevel(0); db.system.profile.drop(); db.setProfilingLevel(2);
我还发现,将system.profile的大小设置为10MB(或更大)而不是默认的1MB非常有用:

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

请记住,配置文件集合是有上限的

为了创建保留更多查询记录的集合,请按所需大小重新创建该集合

db.setProfilingLevel(0)
db.system.profile.drop()
db.createCollection(“system.profile”,{capped:true,size:1024*1024*10})
db.setProfilingLevel(1,{slowms:500})