为什么猫鼬findOne返回null

时间:2019-12-30 16:46:46

标签: node.js mongodb mongoose mongodb-query

我不知道为什么当我通过邮递员到达api端点时,这个猫鼬findOne总是返回null的原因。


exports.updateUserPassword = async(req,res) =>{
   const user = await User.findOne({
        resetPasswordExpires:{ $gt:Date.now() },
        resetPasswordToken:req.params.token

    })
    if(!user){
        res.json({"msg":"Password is invalid or has been expired"})
    }
}

在终端上输入console.log时,我得到了

{
    _id: 5e4553309d0e232a60gc8b6a,
    userName: 'Dan_rey',
    userType: 'Group',
    email: 'dan123@gmail.com',
    password: '$2b$10$lq6BYYckKkOtY.as.EILMe7a.njPyBrHauxMlFfianxmSwdmiAT12',
    date: 2019-12-29T19:49:04.608Z,
    __v: 0,
    resetPasswordExpires: 2019-12-30T19:04:05.874Z,
    resetPasswordToken: '65bc534656b321907c5af968b13d0a44f41de73b'
  }

但是当我使用猫鼬findOne时,我只想要这两个   1)resetPasswordExpires,   2)resetPasswordToken

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

这可能是由于Date.now()返回日期的纪元格式,但您存储的格式不同。 Mongo无法找到具有这种条件的任何文档,因此它返回零结果。 要获取ISO格式的日期,请使用 new Date()代替 Date.now()

为了验证这一点- 您可以将以下文档作为以下正文的insertOne插入mongodb中:

@Html.DropDownListFor(m => m.FlightDetails.AirlineId, ViewBag.AirlineList as SelectList, "--Select--", new { @class = "form-control selectpicker", @data_live_search = "true", @id = flight.Id + "AirlineId" })

点击以下链接了解更多详细信息- https://docs.mongodb.com/manual/reference/method/Date/

相关问题