![](/img/trans.png)
[英]mongoDB: Unable to obtain full object response when reference exists in the object
[英]Mongodb, get full object from a reference
是否存在任何允許我們使用Mongodb從引用訪問完整對象的東西?
例如,我有一個用戶和一個類型集合。 用戶具有一個Type,該Type與對Type對象的引用一起存儲。
是否可以在不延遲加載的情況下使用Type訪問完整的User對象?
謝謝大家
是; 如果您樂於使用貓鼬,則可以使用其populate()
函數:
填充路徑不再設置為其原始_id,通過在返回結果之前執行單獨的查詢,將其值替換為從數據庫返回的貓鼬文檔。
http://mongoosejs.com/docs/populate.html
因此,對於您的User
,在執行查詢以派生該用戶時,類似這樣的操作將設置Type
實例:
User.findOne({ username: 'Fred Bloggs' }).populate('type')
.exec(function (err, user) {
...
MongoDB不執行聯接。 如果不進行一項以上的操作,就不可能獲得將完整Type
對象嵌入到User
文檔中的信息(我想您必須用術語“延遲加載”它)。 Mongoose populate()
函數只是為您處理多余的查詢,並為您替換文檔中的id-它會執行多個查詢,就像執行相同操作的任何其他客戶端一樣。 您應該仔細考慮正在執行的查詢類型,以確定將Type
對象反規范化為User
文檔是否是一個好主意。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.