Mongo多对多关系:如何检查关系是否存在?

时间:2019-01-26 17:01:40

标签: node.js mongodb express mongoose handlebars.js

我已经在节点/ mongo应用程序上创建了一个愿望清单功能,用户可以在其中保存产品。我构建模型的方式:如果用户保存产品,则会在用户模型中称为“喜欢”的数组中添加/引用此产品ID。

var UserSchema = new mongoose.Schema({
  email: {
    type: String,
    unique: true,
    required: true,
    trim: true
  },
  password: {
    type: String,
    required: true
  },
  likes: [{
    type: mongoose.Schema.Types.ObjectId,
    ref: "Product",
    required: true
  }]
});

在商店页面上,我试图弄清楚如何查找用户是否已经保存了产品的每次迭代,并使用此信息在模板中创建条件。

这是我目前的购物路线:

router.get('/shop', function(req, res, next) {

  Product
  .find({})
  .exec(function(err, products) {
    res.render('products', {
      title: 'Shop',
      template: 'products',
      products: products,
    });
  });

});

简而言之,我希望用户能够喜欢某个产品(我已经实现了),但是随后我希望我的模板向用户显示我在商店中输出的所有产品中他们喜欢或不喜欢的产品:

{{#each products }}
  {{#if the product has been liked by the user already}}
        // This thing should happen.
    {{/if}}
{{/each}}

我将如何解决这个问题?

0 个答案:

没有答案