Ленивая загрузка в MongoDb - PullRequest
2 голосов
/ 22 июня 2011

Что такое ленивая загрузка в MongoDb?Если мы хотим создать базу данных, это делается так:

m.getDB(<dbName>).getCollectionNames() 

только из-за отложенной загрузки.Кто-нибудь может объяснить?

1 Ответ

6 голосов
/ 22 июня 2011

Ленивая загрузка - это не то, что является возможностью самой базы данных. Все это означает, что когда клиент выдает запрос через драйвер (или ORM), ORM может решить не загружать весь граф объекта при выполнении запроса. Он может сделать запрос к БД только тогда, когда результирующий объект фактически используется / доступен.

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

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

Теперь имейте в виду, что некоторые опции nosql могут иметь возможности ORM, которые позволяют нам это делать, но наиболее распространенный сценарий, в котором вы увидите это, находится в мире RDBMS, где полноразмерные ORM очень распространены.

Вы можете посмотреть возможности ленивой загрузки / извлечения hibernate, чтобы лучше понять концепцию в целом.

...