如何在外部条件下使用虚拟属性

时间:2018-11-18 15:20:02

标签: node.js mongoose

我正在使用Mongoose / MongoDB构建应用程序

我有一个类似于

的Question模式
    const questionSchema = new Schema({
      text: String,
      responses: [ResponseSchema]
    });

    (pseudo code for adding userResponse virtual property)
    questionSchema.addVirtual(userResponse)

还有一个类似于

的Response子文档
    const responseSchema = new Schema({
      _id: { type: Schema.Types.ObjectId, ref: 'User' },
      response: String
    });

Response子文档中的每个记录均包含用户的ID,以及他们对问题的回答(“是”或“否”)。另外,当用户登录到我的应用程序时,passport.js将其id存储在服务器中的req.user.id

我的目标::当Express API被告知要回答所有问题时,我想用登录用户的(req.user。)填充虚拟属性 userResponse 。 id)作为对MongoDB数据库查询的一部分来回答每个问题。

    app.get('/api/questions', async (req, res) => {
      const questions = await Question.find({})
        .populateVirtual(userResponse, currentQuestion.responses[req.user.id])

      res.send(questions);
    });

显然,Question.populateVirtual不是一个真正的方法,但这是我要实现的伪代码。谢谢!

0 个答案:

没有答案