我必須得到mongodb集合,我們稱它們爲parents
和children
。這個父母/孩子的設計有一對多的關係,當我查詢父母時我也想要孩子。通過這一邏輯,是有意義的有這樣的模型設計:貓鼬 - 我應該將參考文獻添加到父文檔,子文檔還是兩者?
var ParentSchema = new Schema({
name: String,
children: [{type: Schema.Types.ObjectID, ref: 'Child'}]
});
var ChildSchema = new Schema({
name: String
});
這樣的話,我可以使用populate()
輕鬆獲得與父母的子女。不過,我被告知,使用這樣的數組並不好,因爲它們可能會變得混亂。所以,如果我把對象引用放在ChildSchema
中,那麼我可以避免使用這樣的數組。
var ParentSchema = new Schema({
name: String
});
var ChildSchema = new Schema({
name: String,
parent: {type: Schema.Types.ObjectID, ref: 'Parent'}
});
但是,如果我想再次與父母的孩子,populate()
將無法正常工作。什麼是最好的使用模式,如果我在孩子們使用refs,有沒有類似於populate()
的方法來做到這一點?我不喜歡爲了得到一個結果而進行查詢。
我想這正是我想要的,謝謝!這種東西本質上是無法調整的 –
這就是爲什麼我們都喜歡Stack Overflow;)很高興我能幫上忙。 – quarterpi