2011-06-22 74 views
2

什么是延迟加载MongoDb? 如果我们要建立一个数据库,它像做:Lazy Loading in MongoDb

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

由于只有懒加载。谁能解释一下?

+0

问题不清楚。请举另一个你想知道的例子。创建数据库与延迟加载有什么关系? – Thilo

+0

这是在这里回答: http://stackoverflow.com/questions/3989791/lazy-loading-in-mongodb-with-norm希望你找到有用的解释。谢谢 – kheya

回答

6

延迟加载不是数据库本身的功能。所有这一切意味着当客户端通过驱动程序(或ORM)发出查询时,ORM可以选择在查询时不加载整个对象图。只有在实际使用/访问结果对象时,它才可以选择对数据库进行查询。

这又是独立于可以使用的数据库的,并且通常内置于ORM本身。这是为了优化/性能原因而完成的,如果对象图的一部分并不总是被访问,那么当它实际上被访问时,如果我们懒惰地将它加载到两个实例中,那就好了。现在这意味着将会有一个查询,ORM触发来加载访问数据,然后将调用返回给客户端代码。

通常应用程序开发人员需要指定对象图的哪些属性/部分应该被急切加载,哪些应该被加载懒惰。

现在请记住,有些nosql选项可能具有ORM功能,使我们能够做到这一点,但是最常见的情况是,您将看到这种情况发生在RDBMS世界中,并且完全成熟的ORM非常普遍。

您可以查看hibernate的延迟加载/延迟获取功能,以获得概念的一般概念。

+0

ORM仅适用于SQL数据库。 Hibernate为基于文档的数据库创建了OGM。 – MoienGK