Создание коллекции в mongoDB может вызвать некоторые конфликты? - PullRequest
1 голос
/ 18 августа 2011

Предположим, $ db - это установленное соединение mongoDB с php.

Коллекция еще не существует.

Я вставил один данные

$db->board_name->board->article->insert(array("title"=>"example"));

это эквивалентно

db.board_name.board.article.insert({"title":"example"})

проблема в том, что он вставляет не

db.board_name.board

структура, но

просто вставляет "db.board_name.board.article" <--- эти три как строку. </p>

Показывает ли это просто как объединенную строку на данный момент

потому что после "board_name" нет других элементов?

Что если я добавлю больше вещей сразу после "board_name", например

db.board_name.rank.insert({"something":"thing"});

В этом случае mongoDB разумно распознает коллекцию "rank" как часть "board_name"?

или просто создает другую коллекцию с "db.board_name.rank"?

1 Ответ

0 голосов
/ 18 августа 2011

Я не уверен, правильно ли я понимаю, но я думаю, что вы спрашиваете: «Почему нет коллекции с именем board_name.name»?Это потому, что вы еще не создали его.

У каждой коллекции в MongoDB просто есть имя.Тот факт, что люди (и драйверы) используют . s для разделения имен на логические пространства имен, удобен для упрощения использования и позволяет логически группировать связанные коллекции, но с точки зрения MongoDB имя простоstring.

Как только вы создали board_name.name.article, если вы выполните последующую операцию вставки или сохранения в другую коллекцию, скажем, board_name.rank, тогда эта коллекция будет создана для вас в то время.Конфликтов не будет, ваша операция вставки, обновления или сохранения либо определит коллекцию, которая уже существует, и оперирует с ней, либо создаст новую коллекцию и оперирует с ней.

Подробнее о работе коллекций, см. Документы MongoDB .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...