簡體   English   中英

如何找到 mongoDB 文檔和第二個基於其 id 作為第一個屬性的文檔(如內部連接)

[英]How do I find a mongoDB document and a second one based on its id as property of the first (like an inner join)

我正在嘗試在 node.js-expres 設置中使用 mongoose 獲取 model“對話”的所有 mongodb 文檔。 我使用 .find() 方法成功地做到了這一點。 但是現在我想根據會話 model 的屬性給出的“用戶”文檔 ID 獲取會話文檔和相應的“用戶”文檔,我想同時獲取它們object。

所以一個草圖:對話 model 有“_id”、“sender_id”和“recipient_id”。 一個用戶有“first_name”、“last_name”、“email”和“password_hash”。

我想獲取一個 object,其中包含所有屬性以及 _id 等於接收者 ID 的用戶的 _id、名字、姓氏、email 和密碼。

但我似乎無法在互聯網上找到這個。

如果在對話 Model 中,recipient_id 的類型為 ObjectId 並引用 User,那么您可以使用populate() function 自動獲取引用的文檔。

假設您的用戶 Model 被稱為用戶,那么在對話模式中,您應該有:

recipient_id: { type: Schema.Types.ObjectId, ref: 'User' }

然后在您的查找請求中,您可以添加.populate()

Conversations.find().populate("recipient_id")

返回的文檔應包含接收者 ID 中的整個關聯用戶文檔。

對於像這樣更復雜的請求,您還可以查看$lookup (aggregation) 填充應該足以滿足您的情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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