Оболочка Mongos не отображает коллекции, созданные на осколках - PullRequest
1 голос
/ 25 октября 2019

У меня есть кластер с 3 узлами, на котором монг установлены на отдельном узле. Когда база данных (тест) создается с помощью оболочки mongos и добавляются коллекции, я могу просматривать коллекции, используя

использовать тест

показывать коллекции

Однако, когда база данных(test2) создается в одном из осколочных узлов (без использования mongos).

mongo --host = hostname --port = port

use testdb2

db. collection1.insert ({"testing_user": "test"})

и я могу просмотреть коллекцию из этого сегмента

Однако, когда я захожу в оболочку mongos, она показывает коллекцииtestdb2 должен быть пустым.

Также я пытался проверить, присутствует ли коллекция в базе данных конфигурации.

использовать config

db.collection.find ()

Я не вижу коллекций, которые были добавлены в testdb2

1 Ответ

0 голосов
/ 25 октября 2019

Однако, когда база данных (test2) создается на одном из узлов сегмента (без использования mongos).

Не делайте этого.

ВесьТочка сегментированного кластера заключается в разделении данных между шардами. Конфигурационные серверы назначают и поддерживают записи о том, где хранится каждая база данных / коллекция, а маршрутизаторы mongos прозрачно направляют запросы в соответствующие сегменты.

Если вы создаете коллекцию, подключаясь непосредственно к фрагменту,Серверы mongos и config не знают об этом, поэтому нельзя ожидать, что mongos узнает об этом. В большинстве случаев эти данные будут недоступны, а в некоторых случаях они могут быть удалены.

Суть в том, что если вы используете защищенный кластер mongodb, единственный безопасный способ вставки и доступа к данным - через mongos.

...