【问题标题】:Mongoose Query to Match Object ID with User ID, then display in DOMMongoose 查询以匹配对象 ID 和用户 ID,然后在 DOM 中显示
【发布时间】:2018-04-26 17:49:09
【问题描述】:

我对此很陌生,如果我没有使用正确的行话,敬请见谅。我正在使用 Node、Express、MongoDB 和 Mongoose。

我有一个食谱的 mongo 模型:

var recipeSchema = new mongoose.Schema({
    name: String,
    url: String,
    notes: String,
    image: String,
    ingredients: [String],
    author: {
       id: {
         type: mongoose.Schema.Types.ObjectId,
         ref: 'User'
       },
       username: String
    }
});

还有一个用户模型:

var userSchema = new mongoose.Schema({
  username: String,
  password: String,
  recipes: [
  {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Recipe'
  }
]
});

当我显示食谱时,如果当前用户已将特定食谱添加到他们的食谱对象,我希望显示一个按钮,如果他们没有,则显示另一个按钮。我的客户端代码可以访问 currentUser_id ,我可以使用它来查询该用户的食谱并查看当前食谱是否匹配,但我对如何做到这一点(客户端或服务器端?)有点迷茫,然后将该信息传递给 DOM 以更新按钮。

【问题讨论】:

    标签: javascript node.js database mongodb mongoose


    【解决方案1】:

    解决此类问题的方法是让服务器响应某个 API。例如:

    调用:http://yourserver.com/recipes/<user_id> - 将返回一个包含该用户所有食谱的 json。

    另一个想法:http://yourserver.com/u/<user_id>/recipe/<recipe_id> - 无论该 user_id 是否具有该 recipe_id,都将返回 true 或 false。

    对数据库的所有访问都将在处理它的 express 方法上执行。

    【讨论】:

    • 如果这些路由在应用中已经存在其他功能怎么办?
    • 好吧,您可以随时添加更多您认为合适的路线。
    猜你喜欢
    • 2018-08-11
    • 2020-10-24
    • 1970-01-01
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多