2014-05-24 10 views
7

C'è un modo per disattivare la capacità di mongo di creare in modo sporadico dbs e raccolte non appena ne vede una in una query. Eseguo sempre query sulla console di mongo e digitando un nome di db o di raccolta errato, inducendo Mongo a crearne uno. Ci dovrebbe essere un passaggio per fare in modo che mongo crei solo dbs e collezioni. Non riesco a trovarne uno sui documenti.stop mongodb crea dinamicamente dbs e raccolte

risposta

2

No, la creazione implicita di raccolte e DB è una funzionalità della console e potrebbe non essere disabilitata. Puoi dare un'occhiata alle funzionalità di 2.6 di security/authorization/role e vedere se qualcosa può aiutare (anche se non c'è qualcosa che corrisponde esattamente alla tua richiesta, per quanto ne so).

Suggerirei di esaminare il sistema di database di problemi/bug/richieste MongoDB here e, facoltativamente, aggiungere la richiesta di funzione se non esiste già.

9

Per essere chiari, MongoDB non crea automaticamente raccolte o database sulle query. Per le raccolte, vengono creati automaticamente quando si salvano effettivamente i dati su di essi. È possibile verificare questo da soli, eseguire una query su una raccolta precedentemente sconosciuta in un database come questo:

use unknowndb 
db.unknowncollection.find() 
show collections 

No raccolta denominata "unknowncollection" mostra fino a quando si inserisce o si salva in esso.

I database sono un po 'più complessi. Un semplice "use unknowndb" non creerà automaticamente il database. Tuttavia, se dopo aver eseguito ciò si esegue qualcosa come "show collections" creerà il database vuoto.

Sono d'accordo, un'opzione per controllare questo comportamento sarebbe ottima. Felice di votare per questo se apri un biglietto Jira su mongoDB.

0

Per le persone che utilizzano Mongoose, un nuovo database verrà creato automaticamente se lo schema di Mongoose contiene qualsiasi forma di indice. Questo perché Mongo ha bisogno di creare un database prima che possa inserire detto indice.