我正在使用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()方法
访问具有特殊字符的集合答案 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')