2016-10-04 42 views
0

我在所有示例中都看到引用另一個文檔的字段上的後綴「_id」。用Mongoose引用文檔的正確方法

例子:

record: { 
    _id : ObjectId("57f2fb5d1c6c3b0de45b170e", 
    artist_id: "prince") 
} 

artist: { 
    _id: "prince" 
} 

作爲我的藝術家蒙戈架構對名稱字段「獨一無二」的屬性。

對下面的東西可以嗎?

record: { 
    _id : ObjectId("57f2fb5d1c6c3b0de45b170e", 
    artist: "prince") 
} 

artist: { 
    _id : ObjectId(6eygdqzd5d1c6c3b0de45b1s0r", 
    name: "prince" 
} 

或者你應該總是直接引用第一個例子中的Id嗎?

回答

0

如果您在RDBMS世界中可視化您的問題,那麼也建立一個外鍵約束,該字段應該是被引用表中的主鍵,這裏適用相同的規則。

現在在您的藝術家文檔中,儘管每個文檔都將包含一個唯一的藝術家名稱,但名稱字段本身不是關鍵字(主鍵),但ID是。

因此您必須使用_id字段建立參考。

如果你想要,而不是依靠mongodb生成的ID字段,你可以做的就是簡單地使用name作爲_id。

相關問題