[英]How do i reference 1 Mongoose Schema inside another as its property?
[英]How to best reference another schema in a Mongoose schema property?
我正在定義一個 mongoose 用戶模式。
它將包含對地址模式的引用:
const AddressSchema = mongoose.Schema({
street: String,
city: String,
zip: String,
});
const UserSchema = mongoose.Schema({
...
});
我從文檔中看到我可以做到這兩點:
const UserSchema = mongoose.Schema({
name: String,
address: {
type: AddressSchema,
},
...
});
或者
const Address = mongoose.model("Address", AddressSchema);
const UserSchema = mongoose.Schema({
name: String,
address: {
{
type: mongoose.Schema.Types.ObjectId,
ref: "Address"
}
},
...
});
我想唯一的區別是,在第一種情況下查詢用戶文檔時,我總是會填充地址,而在第二種情況下,我將不得不populate()
它...
我問的只是為了確定這就是區別,如果有更微妙的區別我應該注意......從文檔中我無法分辨......
這實際上取決於您需要的查詢類型。
如果您只需要與外部連接的內部操作,例如應該只向他顯示的用戶的私人帳戶操作 - 子文檔 wat 是更好的方法,因為它不需要填充。
如果您需要一起顯示所有操作的列表,那么遍歷每個用戶以獲取他們的操作會很痛苦,然后將其匯總,然后您將擁有該數組,所以這里更好的方法是SQL 稱為“規范化”,您最終會得到所有用戶的一個集合,因此您可以顯示它,但每個操作都會有一個對用戶的引用,因此您可以按特定用戶進行過濾
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.