如何使用数组填充 mongo 对象"foreign keys"?



所以我有Channel模型和Subscriber模型。

频道具有一个属性,该属性包含与已注册的订户相对应的ID数组。

我一直坐在这里,用async:把我的头骨撞在墙上

  1. 获取通道列表,然后在回调结束时
  2. 从该频道获取订阅者ID列表,然后在回调结束时
  3. 再次使用async,对于每个订户ID,运行mongoDB查询以获取用户配置文件并修改频道的初始列表

这似乎大错特错。Subscriber是否应作为嵌入文档在频道内直播?如果是这样的话,当用户需要登录时,我是否必须在所有频道及其所有嵌入文档中进行搜索?

如果我想将它们单独维护,就像我想对用户、投标人和其他我认为不应该作为嵌入文档的实体所做的那样,该怎么办?

附言:我不想使用Mongoose。

有没有更简单的方法?

提前谢谢。

对于这种特殊情况,您可以执行$in查询。您有一个给定频道的subscriberID数组,因此您对subscriber/users集合执行$in查询。

db.subscribers.find({userID:{$in: IDsArray}})

但一般来说,使用Mongo,您将不得不通过应用程序层手动进行这些类型的连接。如果你不打算在其他地方起诉他们,你也可以将订阅者嵌入到频道文档中。或者,您可以切换到关系数据库,如Postgres。

希望这能有所帮助,它应该不必遍历所有的订阅服务器ID并在每个ID上查找。

最新更新