【问题标题】:What is the right way to work with ISODate in Mongoose在 Mongoose 中使用 ISODate 的正确方法是什么
【发布时间】:2019-04-04 01:27:11
【问题描述】:

我正在尝试使用 mongoose 调用 mongodb 集合,但在调用中使用日期时遇到问题

const siteReviews = await Review.countDocuments({
  'clientId': clientObj.ClientBrandID, 
  'siteSource': 'SomeSite', 
  'reviewDate':{
      $gt:"2018-12-24T18:04:47.806Z",
      $lt:"2019-04-03T17:04:47.806Z"
  }
})

我知道我在这两个日期之间有数据,但我得到了 0。我也尝试在代码中直接使用 ISODate(""),但它正在破坏

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    实际上,您已在架构中将reviewDate 字段的type 定义为Date,在这里您将其传递为String

    所以基本上你需要将String 日期转换为Date 对象,并且可以使用moment 库轻松完成

    const googleReviews = await Review.countDocuments({
      clientId: clientObj.ClientBrandID,
      siteSource: "SomeSite",
      reviewDate: {
        $gt: moment("2018-12-24T18:04:47.806Z").toDate(),
        $lt: moment("2019-04-03T17:04:47.806Z").toDate()
      }
    });
    

    【讨论】:

      猜你喜欢
      • 2017-03-25
      • 2016-12-09
      • 2021-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-06
      • 2015-12-22
      相关资源
      最近更新 更多