2012-05-26 5 views
0

Хорошо, я совершенно не знаком с MongoDB и начал читать MongoDB Definitive guide book. Я на странице 7, и он говорит: «типы Группа Сопутствующий ДОКУМЕНТОВ вместе»Группировка похожих типов документов в MongoDB

Я не понимаю :(документ что-то вроде

{"greetings" , "Hello World"} 

так, что они имеют в виду, что предложения ? Не могли бы вы дать мне более подробный пример, так что я могу представить его в моей голове Thanks

ответ

1

документ на самом деле больше похож:. {"greetings": "Hello World"}

в этом случае, его очень простой документ, состоящий только из ключа «приветствия», и его значение «Hello World». Некоторые языки могут называть это ассоциативным массивом, хешем или словарем. Суть этого описания в том, что MongoDB не заботится о структуре. Его схема не требует и не требует, чтобы каждый документ в коллекции имел ту же структуру. Но для эффективности и организационных целей вы были бы склонны хранить подобные документы в одной коллекции. Таким образом, вы получите очень похожие документы на коллекцию с чисто проектной точки зрения.

Документ в MongoDB более или менее похож на структуру JSON (конкретный bson). Он может быть произвольной глубины, и вы создаете индексы на выбранных уровнях объектов, чтобы ускорить поиск.

По большей части, просто подумайте о mongodb как о причудливом объекте хранения, с объектами, которые представляют язык, с которым вы знакомы. Драйвер, специфичный для вашего языка, будет обрабатывать мост между вашими собственными типами объектов и представлением bson в mongodb. Вы создаете объекты и сохраняете их. Это действительно не все, что отличается от понимания mysql, но зная, что вам не нужно определять схему таблицы. Просто начните хранить все, что захотите.

1

На самом деле, документ будет больше похож

{ "Приветствие": "Hello World"}

означает документ содержит приветствие (ключ) и приветствие "Hello World" (значение) , Документ может быть очень сложным набором пар значений ключа, включая значения, которые представляют собой массивы, встроенные документы и т. Д.

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

Относительным примером может быть коллекция, в которой есть каждый документ, представляющий пользователя системы. Поля в каждом документе будут различаться в зависимости от того, сколько информации у вас есть у каждого пользователя, но, по крайней мере, у вас может быть адрес электронной почты, имя и т. Д. Затем вы можете запросить всех пользователей, удовлетворяющих некоторым условиям.

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

Я не знаком с конкретной книгой, которую вы упомянули, но, возможно, если вы продолжаете пахать вперед, она начнет иметь больше смысла. Если нет, я рекомендую прочитать некоторые из страниц here для получения дополнительных примеров.

Смежные вопросы