I have found a collection in one of our MongoDB databases with the name my.collection
.
Is there a way to access this collection from the MongoDB shell,
Your code is correct. If it returns null it means that the collection is empty.
if collection name is "my.collection"
db.my.collection.findOne(); // OK
null
if collection name is "my.1.collection"
db.my.1.collection.findOne(); // Not OK
SyntaxError: missing ; before statement
Fix:
db["my.1.collection"].findOne(); // Now is OK
null
try this instead:
db["my.collection"].findOne();
you run into the same issue with hyphens or any other name that does not match on [a-zA-Z_$][0-9a-zA-Z_$]
This limitation comes from valid named for javascript object properties.
Another foolproof method is:
db.getCollection("_SCHEMA").find()
While in the case of a underscore in the name, still cause a error with @Laura answer:
> db["_SCHEMA"].find()
2016-07-18T17:44:16.948+0200 E QUERY [thread1] TypeError: db._SCHEMA is undefined :
@(shell):1:1