假设我有两个完全不同的服务器和数据库。
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 }
...
]
场景:
FromServer A,通过从Server B获取api我得到了ModelB的列表的结果。我想要填充ModelA
假设
ModelAs find() result =resultA
ModelBs find() result =resultB
我的解决方案:
方案A:
流程:从服务器B取回=比;使用map =>模型; (listOfExtractedIds) =比;通过嵌套循环resultA比较和合并结果onresultB
*这是非常低效的,因为涉及多个循环。
方案B:
Flow Fetch fromServer B=比;模型.populate (resultB, {path:"_id"})
*这是我理想的解决方案,但它不起作用,因为服务器A无法访问模型B没有ref。
有没有更好的方法来解决这个问题?或者是否有办法解决方案B按预期工作吗?
*PSServer A无法访问ModelB位于服务器B。
*Noref在两个型号上指定。
在这种情况下,方案A是唯一的解决方案,因为显然两个不同的数据库不能连接数据。
你唯一能做的就是优化解决方案A来提高性能,例如使用某种缓存。