2012-12-01 16 views
21

Impossibile eliminare la raccolta dal guscio,Impossibile eliminare la raccolta da mongodb

La cosa che la collezione è disponibile e il mio script php sta accedendo esso (selezionando | aggiornamento)

Ma quando ho usato:

db._registration.drop() 

mi dà un errore:

Date, JS Error: TypeErrorL db._registration has no properties (shell): 1 
+3

che dire 'db.getCollection ("_ registrazione")', credo che questo potrebbe essere un bug in come '__call' nella classe JS di db potrebbe funzionare. – Sammaye

risposta

47

Il problema non è con l'eliminazione della raccolta. Il problema è con l'accesso alla raccolta. Quindi non saresti in grado di aggiornare, trovare o fare qualcosa con esso dalla shell. Come indicato in mongodb JIRA, si tratta di un errore quando una raccolta contiene caratteri come _, - o .

Tuttavia, questo tipo di nomi per le raccolte è accettabile, ma causa un problema nella shell.

è possibile eliminarlo in guscio con questo comando:

db.getCollection("_registration").drop() 

ma preferirei rinominarlo (ovviamente se è possibile e non finirà con un sacco di cambiamento).

+0

Risulta applicabile a qualsiasi raccolta con '-test' alla fine del nome! (ad esempio 'db.mycollection-test.drop()') –

+2

Non è possibile scrivere 'db.mycollection-test' in JS. Sarà riconosciuto come sottrarre 'db.mycollection' minus' test'. – MatiK

-1

Per qualche ragione le virgolette doppie "_registration" non mi hanno workfor .. ma quote '_registration' unico lavorato

Problemi correlati