摘要:譯者飛龍來源關聯是一種多對一的關系,意思是你定義的模型可以有多個實例指向一個其它的實例所屬相同模型或不同模型。如果關聯并不是必須的,則可以為空。這個關聯也會創建一些額外的便利方法叫做關聯訪問器來幫助你管理它。
譯者:飛龍
來源:hasOne
hasOne關聯是一種多對一的關系,意思是你定義的模型可以有多個實例指向一個其它的實例(所屬相同模型或不同模型)。
用法Animal.hasOne(association_name [, association_model [, options ] ]);描述
association_name是兩個模型之間的關系名稱‘
association_model是要關聯的另一個模型(如果沒有定義,假設為同一個模型,大多數情況下這可能不是你想要的);
options是一個對象,擁有一些和關聯有關的,你可以調整的屬性,比如自動獲取,再比如表(SQL中)或者集合(MongoDB中)的名稱。
示例Animal.hasOne("owner", Person);
在背后,這條語句意思是Animal集合擁有一個屬性owner_id(這個名稱可以通過選項來修改,{field: "ownerid"}),它會指向Person集合的某個人。如果關聯并不是必須的,則可以為空。
這個關聯也會創建一些額外的便利方法(叫做關聯訪問器)來幫助你管理它。訪問器的名稱也可以修改(同上,在選項里面),默認情況下,它們會擁有和關聯名稱相似的名稱。例如,下面的代碼展示了可以做類似這樣的事情:
// assuming John is a Person.. Animal.find({ name: "Deco" }).first(function (err, Deco) { Deco.setOwner(John, function (err) { // John is now the owner of Deco }); });
其它的訪問器:
getOwner(callback) - 獲取關聯的所有者
hasOwner(callback) - (在回調中)返回這個動物是否擁有所有者
removeOwner(callback) - 移除和所有者的關聯關系(如果存在的話)
關聯反轉有時你希望通過對面的模型來訪問關聯。在上面的例子中,是通過Person。你可以向關聯傳遞一個選項來實現它。
Animal.hasOne("owner", Person, { reverse: "pets" });
之后,每個person實例都有有兩個便利方法:
getPets(callback) - 獲取所有和這個人有關聯的動物
setPets(cat, dog, callback) - 移除所有和這個人有關聯的動物,并且添加貓和狗
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/17504.html
摘要:譯者飛龍來源關聯是一個或多個模型之間的關系。關聯的類型一對多多對多一對一 譯者:飛龍 來源:Defining Associations 關聯是一個或多個模型之間的關系。 關聯的類型: hasOne(一對多) hasMany(多對多) extendsTo(一對一)
摘要:看似一對一其實一對多這里的指的應該是查詢數據主表結果中關聯信息是以單個形式作為一個屬性掛在主表每一個對象中實際上是主表與關聯表的多對一關系拿中的和中的進行關聯配置的別名配置中的外鍵字段名稱,默認為配置中的目標鍵字段名稱,默認為主鍵查 One-To-One 看似一對一,其實一對多.這里的 One-To-One 指的應該是查詢數據(主表)結果中,關聯信息是以單個形式作為一個屬性掛在主表每一...
閱讀 1522·2021-11-24 09:38
閱讀 3374·2021-11-18 10:02
閱讀 3262·2021-09-22 15:29
閱讀 2945·2021-09-22 15:15
閱讀 1047·2021-09-13 10:25
閱讀 1861·2021-08-17 10:13
閱讀 1996·2021-08-04 11:13
閱讀 1981·2019-08-30 15:54