Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Working with special characters in a Mongo collection

Tags:

mongodb

I have a collection I'm unable to drop, I'm assuming that the "-" in its name is a special character. In MongoDB, what is the best way to escape special characters?

> db.tweets.drop(); true 

BUT

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

I've tried to escape with quotes (both single and double) and a slash, but nothing works.

like image 785
jbnunn Avatar asked Mar 05 '12 16:03

jbnunn


2 Answers

The following works:

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

It's called the square bracket notation, which allows you to use special characters in property names.

like image 88
Niels van der Rest Avatar answered Nov 04 '22 19:11

Niels van der Rest


So does:

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

And that has been around for a while now.

In addition, the method call also mimics what is the general "get a collection" accessor method in all officially supported MongoDB drivers. So the suggestion here is that you get used to using it this way, since the "named collection" accessor is how it is generally done.

like image 44
Blakes Seven Avatar answered Nov 04 '22 21:11

Blakes Seven