2
我的應用程序有三個集合MongoDB中的用戶,通道和源在貓鼬中獲取參考集合
用戶可以註冊通道。所以Channel將擁有已註冊該頻道的用戶的參考ID。
頻道有多個Feed。 Feed文件具有參考ID到頻道。
我想根據他訂閱的頻道檢索用戶訂閱源。 我如何在Mongoose中實現這一點?
我的應用程序有三個集合MongoDB中的用戶,通道和源在貓鼬中獲取參考集合
用戶可以註冊通道。所以Channel將擁有已註冊該頻道的用戶的參考ID。
頻道有多個Feed。 Feed文件具有參考ID到頻道。
我想根據他訂閱的頻道檢索用戶訂閱源。 我如何在Mongoose中實現這一點?
您可以使用ObjectId
模式類型來引用其他集合中的文檔。然後,當您查詢父文檔時,您可以使用populate
來填充這些文檔。例如:
var UserSchema = new Schema({
// Some fields
channels: [{type: ObjectId, ref: 'Channel'}]
});
然後,當你獲取一個用戶,你可以使用populate
這樣的:
User.findById(user._id).populate('channels').exec(function(err, userWithChannels) {
var channels = userWithChannels.channels;
// Do your work
});
你應該能夠扭轉的關係,如果這就是你想要的東西來代替。
謝謝。我必須這樣做才能在渠道中獲取Feed? –
是的,你可以在所有需要引用其他集合的模型中這樣做。 – NilsH