是否有任何东西允许我们从Mongodb的引用中访问完整的对象?
例如,我有一个User和一个Type集合。用户有一个Type,它与对Type对象的引用一起存储。
是否有可能使用Type访问完整的User对象,而不延迟加载它?
感谢所有人
发布于 2014-08-21 08:10:32
是的,如果你喜欢使用mongoose,那么你可以使用它的populate()
函数:
填充的路径不再设置为其原始_id,它们的值被替换为从数据库返回的mongoose文档,方法是在返回结果之前执行单独的查询。
http://mongoosejs.com/docs/populate.html
因此,对于您的User
,在执行查询以派生所述用户时,将设置Type
实例:
User.findOne({ username: 'Fred Bloggs' }).populate('type')
.exec(function (err, user) {
...
发布于 2014-08-21 20:14:30
MongoDB不做联接。如果没有多个操作,就不可能获得将完整的Type
对象嵌入到User
文档中的信息(在您的术语中,我猜您必须“延迟加载”它)。Mongoose populate()
函数只负责执行额外的查询并将id替换为文档-它可以执行多个查询,就像任何其他执行相同操作的客户机一样。您应该仔细考虑执行哪种类型的查询,以确定将Type
对象反规范化为User
文档是否是一个好主意。
https://stackoverflow.com/questions/25421163
复制相似问题