簡體   English   中英

Mongodb,從參考中獲取完整的對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM