I named a collection with an underscore in Mongo, and can't access it from the shell:
meteor:PRIMARY> show collections _assignments chatmessages (... other stuff)
Trying to run any function on the first collection results in an error:
meteor:PRIMARY> db._assignments.find() Thu Jun 19 10:53:28.450 TypeError: Cannot call method 'find' of undefined
However, other collections work fine:
meteor:PRIMARY> db.chatmessages.find() { "room" : "j5oau9DJ6GNpT9nR8", "userId" : "at9Kt8NNL4aeof6LE", "text" : "@nomad943 can you take a look at event #1?", "timestamp" : 1391806611977, "_id" : "26GbXa6c4B65FYRxC" } { "room" : "T7JfjBhri48bNHAfQ", "userId" : "B82LxmPBZWDnN4N2p", "text" : "Thinking #60 should be deleted, it's a duplicate of #36 and the region is wrong for the province", "timestamp" : ISODate("2014-06-18T18:57:56.480Z"), "_id" : "29pKqPhi4hgxCb2Ky" }
What's going on here?
To obtain a list of MongoDB collections, we need to use the Mongo shell command show collections . This command will return all collections created within a MongoDB database. To be able to use the command, we'll first need to select a database where at least one collection is stored.
Database names and Collection names are case sensitive. You can always recreate the DB/Collection with the appropriate name. The Mongo Shell is a interactive JS interpreter. and because JS is case sensitive then the shell is.
A collection cannot have more than 64 indexes. The length of the index name cannot be longer than 125 characters. A compound index can have maximum 31 fields indexed.
The maximum BSON document size is 16 megabytes. The maximum document size helps ensure that a single document cannot use excessive amount of RAM or, during transmission, excessive amount of bandwidth. To store documents larger than the maximum size, MongoDB provides the GridFS API.
I don't see the problem other than the shell cannot address this with it's default helper syntax. You can still access collections named like this in the shell:
db.createCollection("_assignments") { "ok" : 1 } db.getCollection("_assignments").find() db.getCollection("_assignments").insert({ "a": 1 }) WriteResult({ "nInserted" : 1 }) db.getCollection("_assignments").find({ "a": 1 }) { "_id" : ObjectId("53a36a4047234c4e9bb4feac"), "a" : 1 }
This is a known bug. Don't prefix collections with underscores.
https://jira.mongodb.org/browse/SERVER-445
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With