Mongo客户端无法访问带有下划线的集合

And*_*Mao 20 javascript mongodb meteor

我在Mongo中使用下划线命名了一个集合,并且无法从shell访问它:

meteor:PRIMARY> show collections
_assignments
chatmessages
(... other stuff)
Run Code Online (Sandbox Code Playgroud)

尝试在第一个集合上运行任何函数会导致错误:

meteor:PRIMARY> db._assignments.find()
Thu Jun 19 10:53:28.450 TypeError: Cannot call method 'find' of undefined
Run Code Online (Sandbox Code Playgroud)

但是,其他集合工作正常:

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" }
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?

Nei*_*unn 45

除了shell无法使用它的默认助手语法解决这个问题之外我没有看到问题.您仍然可以在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 }
Run Code Online (Sandbox Code Playgroud)