【问题标题】:How to implement a "follows"/has-many relationship with mongoosejs?如何实现与 mongoosejs 的“关注”/有很多关系?
【发布时间】:2015-10-09 06:19:27
【问题描述】:

我正在使用 mongoose 和 express 创建一个应用程序。我有用户和场地模型。

我希望用户关注场地并查看他们关注的所有场地。我还想在场地页面上显示所有关注场地的用户。一个用户关注了很多场所,一个场所有很多用户关注者。

用 mongoose ORM 实现这种关系的最佳方式是什么?我的模型应该是什么样的? CRUD 后面的操作呢?

我见过mongoose-relationship,但似乎不是很受欢迎。实现这种“跟随”数据库关系的 mongoose.js 社区解决方案是什么?

【问题讨论】:

    标签: node.js mongodb express mongoose


    【解决方案1】:

    用户模型/模式将有一个包含场地._id 的“venuesFollowing”数组。场地模型/模式将有一个包含 user._id 的“usersFollowing”数组。

    var Mongoose = require('mongoose');
    var Schema = Mongoose.Schema;
    var Venue = require('./venue');
    
    var userSchema = new Schema({
      fullName: {type: String, required: true},
      username: {type: String, required: true},
      email: {type: String, required: true},
      venuesFollowing: [{type: Mongoose.Schema.ObjectId , ref: 'Venue'}],
    
    });
    
    var User = Mongoose.model("User", userSchema);
    
    module.exports = User;
    

    您可以以此用户模型为基础来构建您的场地模型,并将场地关注替换为用户关注。您需要 Venue 模型,以便可以在此用户模型中引用它,反之亦然。您将能够通过他们的 ID 访问所有关注场地的用户,反之亦然,访问他们关注的用户和场地 ID。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-20
      • 2020-10-24
      • 1970-01-01
      • 2019-02-01
      • 2012-02-03
      • 2021-10-27
      • 1970-01-01
      相关资源
      最近更新 更多