猫鼬今天使用$ gte和$ lte查找日期?

时间:2020-08-08 15:28:03

标签: node.js mongodb mongoose

date_range: {
   from: 2020-08-08T14:46:43.171+00:00
   to: 2020-08-08T14:46:43.171+00:00
}

今天是2020年8月8日,所以我的mongodb集合中有上述数据,但是当我尝试使用此查询时却不匹配

MyModel.find({
 date_range: {
  from: { $gte: new Date() },
  to: { $lte: new Date() },
 }
})

任何线索为什么不匹配?

2 个答案:

答案 0 :(得分:1)

Sub updateAllChartsWithWorkSheets() Dim pptChart As Chart Dim pptChartData As ChartData Dim pptWorkbook As Object Dim sld As Slide Dim shp As Shape Dim xlApp As Object Dim xlWorkBook As Object Set xlApp = CreateObject("Excel.Application") Dim wb As Workbook Dim ws As Worksheet Dim x As Integer Dim num As Integer Dim cnt As Integer Dim i As Integer Dim j As Integer Dim k As Integer xlApp.Visible = True Dim file As String file = "D:\User\Downloads\output\total\manfactruersource.xlsx" Set xlWorkBook = xlApp.Workbooks.Open(file, True, False)''' For Each sld In ActivePresentation.Slides For Each shp In sld.Shapes If shp.HasChart Then num = num + 1 End If Next Next Const strFileName As String = "D:\User\Downloads\output\total\manfactruerpasteranges.txt" Open strFileName For Input As #1 Dim PasteRanges() As String i = 0 Do Until EOF(1) ReDim Preserve PasteRanges(i) Line Input #1, PasteRanges(i) Debug.Print (PasteRanges(i)) i = i + 1 Loop Close #1 Debug.Print "Paste Ranges "; (UBound(PasteRanges)) For Each sht In xlWorkBook.Sheets cnt = cnt + 1 Next Dim MyRangeArray() As Object ReDim MyRangeArray(0 To cnt) j = cnt - 1 For Each sht In xlWorkBook.Sheets Set MyRangeArray(j) = sht ' Debug.Print sht.Name j = j - 1 Next k = 0 For Each sld In ActivePresentation.Slides For Each shp In sld.Shapes If shp.HasChart Then shp.Chart.ChartData.Activate MyRangeArray(k).Range(PasteRanges(k)).Copy Set wb = shp.Chart.ChartData.Workbook wb.Worksheets("Sheet1").Range(PasteRanges(k)).PasteSpecial Paste:=xlPasteFormats k = k + 1 End If Next Next Set pptWorkbook = Nothing Set pptChartData = Nothing Set pptChart = Nothing End Sub 返回以毫秒为单位的当前时间,如果要匹配今天的所有日期,则需要具有new Date()$gte: <start-of-today>

答案 1 :(得分:1)

任何不匹配的线索

让我们说当前时间是14:00:00。然后lte条件失败。

14:46:43(toDate)不小于14:00:00

比方说当前时间为16:00:00。然后gte条件失败。

14.46:43(fromDate)不大于16:00:00

因为查询中的条件是AND

您可以使用以下内容:

db.collectionName.find({
  "$or": [ //OR condition
    {
      date_range: {
        from: {
          $gte: new Date()
        }
      }
    },
    {
      "date_range.to": {
        $lte: new Date()
      }
    }
  ]
})

OR

如果必须查找当天的数据,请使用@frozen的答案start time - 00:00:00,结束时间为23:59:59.999

gte中使用startTime,在lte中使用结束时间