2012-01-04 6 views
41

C'è un modo facile e morto per rinominare una raccolta in mongo? Qualcosa di simile:Come posso rinominare una raccolta in MongoDB?

db.originalCollectionName.rename('newCollectionName'); 

E se no, qual è il modo migliore per andare sul rinominare efficacemente uno?

risposta

65

Chiudi. Utilizzare db.originalCollectionName.renameCollection('newCollectionName')

Vedi http://www.mongodb.org/display/DOCS/renameCollection+Command

+4

suggerimento: prova a utilizzare la scheda completa per trovare le cose che pensi possano essere lì;) – nav

+0

+1 Ho anche scoperto che questo errore se la raccolta che desideri rinominare (il 'nome raccolta di destinazione') esiste già. SE sei contento di aver detto che la raccolta ** è scesa **; quindi puoi passare "true" come secondo argomento, ad es. 'db.originalCollName.renameCollection ('alreadyExistingCollName', true)' – AlexP

+0

dopo la rinomina, saranno conservati gli indici e tutto? – user2810081

6

Per coloro che non possono cambiare titolo, perché il nome provoca un problema come: SyntaxError: token imprevisto illegale, è perché il nome è illegale.

È possibile aggirare questo chiamando con staffe notazione: db["oldCollectionILLEGALName"].renameCollection("someBetterName")

4

Si supponga che il nome del database è "mytestdb" e nome della raccolta è "ordini". raccolta cambio di nome per orders2015 Il modo più semplice è,

> use mytestdb 
> db.orders.renameCollection("orders2015") 

Nota: db.collection.renameCollection() non è supportata sulle collezioni sharded.