2016-12-08 4 views
0

Mongo server: Windows 10 (хост) клиент: CentOS 6.2, виртуальная коробка vm на хосте Windows 10. Это на самом деле клаудер быстрый старт vm. Проблема: mongodb подключается к удаленному серверу (от CentOS до Windows) через терминал, прекрасно отображает базы данных, но «показать коллекции» просто возвращает пустой. Тем не менее, коллекции доступны, потому что я могу запросить любую коллекцию, и подсчет также дает мне правильные результаты. С другой стороны, я подключился к тому же серверу mongo от IntelliJ, и он показывает все коллекции просто отлично.Mongodb не перечисляет коллекции при удаленном подключении от CentOS

Просто любопытно, почему это происходит. Любые комментарии?

Side Note: есть ли команда mongodb для подсчета количества коллекций в базе данных?

Благодаря

_Vamsi

ответ

0

Убедитесь, что вы используете базу данных, которую требуется отобразить коллекции для. Вы можете использовать базу данных, в которой нет каких-либо коллекций.

> use desiredDatabase 
> show collections 

Если список по-прежнему пуст, попробуйте войти в систему с учетной записью администратора. Пользователь должен иметь возможность выполнить действие listCollections. Роль dbAdmin включает в себя действие listCollections.

Чтобы получить счетчик, вы можете использовать функцию getCollectionNames, которая возвращает массив, и вы можете получить длину от этого.

> db.getCollectionNames().length 
+0

Thanks Logan. Конечно, я использую правильную базу данных. Вторая часть информации хороша. Танки для этого. – Vamsi

+0

Если вы создаете коллекцию из терминала, она отображается? Например. 'db.collection.insert ({a: 1})' then 'db.getCollectionNames()' показывает 'collection'? –

+0

Я могу добавить коллекцию, никаких проблем. Но «show collections» и db.getCollectionNames() оба отображаются пустым. Тем не менее, я могу запросить новую коллекцию как можно точнее. Weird. – Vamsi