天天看點

寫給MongoDB開發者的50條建議Tip17

本系列文章翻譯自《50 Tips and Tricks for MongoDB Developers》,暫時沒有找到中文版,反正自己最近也在深入學習mongodb,是以正好拿來翻譯一下。一方面加強自己學習的效果,另一方面讓大 家也一起來體驗一下需要我們這些mongodb使用者需要注意的地方。

首先聲明自己的英文水準不是太高,加之有些英文翻譯成中文也找不到合适的詞來表達,是以在文章中可能會出現英文原詞,或者說有些地方的翻譯會有些生 硬,也就是說會出現直譯的地方。翻譯該書的主要目的是為大家學習探讨用的,如果有翻譯不精準的地方,或者說有更加精準的翻譯,還請大家指出,我會及時的更 正的,在此先謝過各位了。

Tip#17.Do not use database references

不要使用資料庫引用

資料庫引用是一種引用式的子文檔,格式如下:

{$id:identifier,$ref:collectionName} 

還有一個可選的$db字段,用來指明資料庫名稱。

看起來有點關系資料庫的感覺,引用了另外一個集合中的一個文檔。但是,實際上沒有引用另外一個集合,隻是一種引用式的子文檔。這沒有什麼神奇的,在mongodb中沒有連接配接這種東西。這隻是一個包含_id和集合名稱的子文檔。這意味着,如果想要引用它們,你必須進行第二次查詢。

如果你知道你要引用的集合,你可以節約存儲集合_id,甚至是_id和集合名稱所占的空間。資料庫引用就是浪費空間,除非你不知道你引用的文檔在哪個集合中。

我唯一聽過的使用資料庫引用并做得很好的例子是,允許使用者評論系統中的任何内容。單獨有一個comments集合用來存儲全部的comment,其他所有的集合和資料庫都有對于這個comments集合的引用。

本文轉自 virusswb 51CTO部落格,原文連結:http://blog.51cto.com/virusswb/803781,如需轉載請自行聯系原作者