在 MongoShell 中:无法连接到我的 collection、db.collection_name return NaN

In MongoShell: Not able to connect to my collection, db.collection_name return NaN

我正在使用 MongoDB 企业版,MongoDB shell 版本:3.2.5

我有一个 db = mydb 和一个 collections = ['events', 'events__2015-12-01', 'events__2015-11-01']

我有一个 python/pymongo 脚本,我可以在其中连接到每个文档,但是在 mongo shell 中,我无法连接到过时的 collections?

换句话说

mongodb> use mydb 
switched to db mydb
mongodb> db.event
mydb/event
mongodb> db.event__2015-12-01
NaN
mongodb> db.event__2015-11-01
NaN
mongodb> show collections
event
event__2015-11-01
event__2015-12-01

为什么 shell 会发生这种情况?

编辑:

注:进一步检查 Mongo Documentations。明确指出 collections 具有特殊字符只能通过 getCollection() 方法

访问

您可以使用以下任一语法来访问带有连字符名称的集合:

db['event__2015-12-01']

db.getCollection('event__2015-12-01')

当您写 db.event__2015-12-01 时,event__2015-12-01 是您的集合对象,它与您的集合数组或列表 (Python) 中的元素完全不同。

要从字符串创建集合对象,您需要在 Python 脚本中使用 getCollection() method in the shell and the get_collection() 方法。您也可以使用 [] 运算符。