mongoDB中多对多的关系

发布于 2022-09-11 22:45:50 字数 344 浏览 10 评论 0

现在有这样的一个情形: 一个用户可以关注多个用户,一个用户也可以被多个用户关注。这是多对多的关系吗?
如果是的话,按照nosql的特性,应该有两个表,一个就是User表,另一个就是Follow表。其中User表存放一个关注当前用户的用户的id列表followers,描述当前用户被哪些用户关注;Follow表存放某个user的关注列表,描述当前用户关注了哪些用户。
请问这样设计是否符合规范。
PS:查询用户关注用户的频率算中等,不是很高。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

把回忆走一遍 2022-09-18 22:45:50

在你非要用nosql联表查询的情况下,确实就可以这样设计,用聚合查询就可以。

Model.aggregate([
    {
      $lookup: {
        from: "users",
        localField: "userId",
        foreignField: "_id",
        as: "userInfo",
      },
    },
    { $sort: { timeStamp: -1 } },
    { $skip: parseInt(page - 1) * parseInt(pageNumber) },
    { $limit: parseInt(pageNumber) },

  ])

但是,这个查询的速度相对于sql的多表查询就慢很多。nosql不适用于复杂的数据库关联设计

·深蓝 2022-09-18 22:45:50

感觉不用这么复杂啊,mongo就是文档型的数据库呀

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文