В 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')
Другие вопросы по тегам