2012-03-05 36 views
24

Tengo una colección que no puedo eliminar, supongo que el "-" en su nombre es un carácter especial. En MongoDB, ¿cuál es la mejor forma de escapar de los personajes especiales?Trabajar con caracteres especiales en una colección de Mongo

> db.tweets.drop(); 
true 

PERO

> db.tweets-old.drop(); 
ReferenceError: old is not defined (shell):1 

He tratado de escapar con comillas (individuales y dobles) y una barra, pero nada funciona.

Respuesta

52

las siguientes obras:

db["tweets-old"].drop(); 

Se llama el square bracket notation, lo que le permite utilizar caracteres especiales en los nombres de las propiedades.

+0

:) ... me había dado por vencido y había cambiado el nombre de la colección, pero sí, ¡¡esto funciona !! – Mahesh

3

también lo hace:

db.getCollection("tweets-old").drop() 

Y que ha estado alrededor por un tiempo ahora.

Además, la llamada al método también imita el método de acceso general "obtener una colección" en todos los controladores MongoDB compatibles oficialmente. Entonces la sugerencia aquí es que te acostumbres a usarlo de esta manera, ya que el accesoador de "colección nombrada" es la manera en que generalmente se hace.