2014-07-23 6 views
30

Je profile les requêtes db dans MongoDB. J'ai suivi le lien this. J'essaye de supprimer toutes les données de la collection system.profile afin que je puisse recommencer l'analyse comparative de différentes requêtes. J'ai essayé le code suivant, mais il donne une erreurComment supprimer la collection system.profile d'un MongoDB?

CONSOLE SYNTAX

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

erreur

cannot delete from system namespace 

Comment puis-je supprimer toutes les données de cette collection? Si ce n'est pas possible, comment puis-je commencer le profilage depuis le début?

Répondre

68

Tout d'abord, désactiver le profilage en réglant son niveau à 0.

db.setProfilingLevel(0) 

Ensuite, vous pouvez simplement laisser tomber la collection.

db.system.profile.drop() 

Maintenant, vous êtes libre de tout recommencer.

11

Pour riff hors de la réponse acceptée, il est parfois utile de le faire en une seule ligne:

db.setProfilingLevel(0); db.system.profile.drop(); db.setProfilingLevel(2); 

Je trouve aussi que le réglage de la taille de system.profile à 10MB (ou plus) plutôt que son défaut 1 Mo est très utile:

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