references.forEach(
function(ref){
printjson(db[ref.$ref].findOne({"_id":ref.$id}));
}); www.2cto.com
c.什么时候使用DBRef
在MongoDB中表示这种对其他文档的引用关系,并不是只有DBRef方式.
上面的例子就用了另外一种引用:每个note的author键仅存储了author文档的"_id"键,没有必要用DBRef,因为已经
知道每个author就是users集合里面的一个文档.这种引用在GridFS的块文档中"files_id"键仅仅就是对文档"_id"的引用.
在保存引用的时候是选择DBRef还是至存储"_id"
保存"_id"会更加紧凑,对开发者而言就很轻量.但是DBRef能够引用任意集合(甚至是任意
数据库)的文档,开发者
不必知道和记住被引用的文档在哪些集合里面.驱动程序和一些工具对DBRef提供了额外的功能(如自动去引用).
总之,存储一些对 不同 集合的 文档的引用时,最好用DBRef.否则最好存储"_id"作为引用来使用,这样更简单,也更容易操作.
作者 refactor