В MongoShell: не удается подключиться к моей коллекции, db.collection_name возвращает NaN
Я использую MongoDB Enterprise, версия оболочки MongoDB: 3.2.5
У меня есть db = mydb и collection = ['events', 'events__2015-12-01', 'events__2015-11-01']
У меня есть скрипт python/pymongo, где я могу подключиться к каждому документу, но в оболочке mongo я не могу подключиться к датированным коллекциям?
другими словами
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
почему это происходит в оболочке?
РЕДАКТИРОВАТЬ:
Примечание: о дальнейшей проверке документации. Четко сказано, что коллекции со специальными символами могут быть доступны только через метод getCollection()
2 ответа
Когда ты пишешь db.event__2015-12-01
, event__2015-12-01
это объект вашей коллекции, который сильно отличается от элементов в вашем массиве или списке коллекций (Python).
Чтобы создать объект коллекции из строки, вам нужно использовать getCollection()
метод в оболочке и тому get_collection()
метод в вашем скрипте Python. Вы можете использовать []
оператор тоже.
Вы можете использовать любой из следующих синтаксисов для доступа к коллекциям с дефисными именами:
db['event__2015-12-01']
ИЛИ ЖЕ
db.getCollection('event__2015-12-01')