簡體   English   中英

貓鼬從外部結果填充

[英]Mongoose populate from external results

鑒於我有 2 個完全不同的服務器和數據庫。

Server A, Database A:
Database A's model as ModelA :{
    _id: ObjectId(),
    fieldA: any
}

Server B, Database B:
Database B's model as ModelB :{
    _id: ObjectId(),
    fieldB: any
}

Database A _id === Database B _id

Expected result:[
    { _id, fieldA, fieldB }
    ...
]

設想:
服務器 A ,通過從服務器 B獲取 api 我得到了ModelB結果的列表。 我想通過使用獲取結果來填充ModelA

讓我們說
ModelA的 find() 結果 = resultA
ModelB的 find() 結果 = resultB

到目前為止我的解決方案:

解決方案一:
流程:從服務器 B獲取 => 使用 map => ModelA提取 _id 列表 => ModelA .find(listOfExtractedIds) => 通過嵌套循環resultAresultB上比較和合並結果
*這是非常低效的,因為涉及多個循環。

解決方案B:
Flow Fetch from Server B => ModelA .populate( resultB , {path:"_id"})
* 這是我理想的解決方案,但它不起作用,因為服務器 A無法訪問模型 B並且不涉及引用

有沒有更好的方法來解決這個問題? 或者有沒有辦法讓解決方案 B按預期工作?

*PS服務器 A無法訪問服務器 B上的ModelB
*兩種型號均未指定參考

那么解決方案 A 是這種情況下的唯一解決方案,因為顯然兩個不同的數據庫無法連接數據。

您唯一能做的就是優化解決方案 A 以提高性能,例如使用某種緩存。

暫無
暫無

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

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