为什么mongodb的$where内取不到外部的变量?

如下代码,$where内取不到外面的变量,比如req,提示req未定义,求解是为什么啊?

router.get('/get',(req,res)=>{
    comments.find({$where:function(){
      return this._id===req.query.id
    }},{email:0}).exec((err,docs)=>{
      if(err){
        res.json({
          sts:0,
          data:err
        })
        return
      }
      res.json({
        sts:1,
        data:docs
      })
    })
})
阅读 1.4k
1 个回答

自问自答了,虽然还是不知道为什么$where写成函数就取不到函数外的变量的值,不过改成字符串

`this._id==='${req.query.id}'`

可以取到,如果有哪位大神知道为什么函数就取不到值求解惑。感谢!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题