在MongoShell中:无法连接到我的集合,db.collection_name返回NaN

时间:2016-12-21 12:20:38

标签: mongodb mongodb-shell

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

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

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

换句话说

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。清楚地说明只能通过getCollection()方法

访问具有特殊字符的集合

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

db['event__2015-12-01']

OR

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