mongodb golang限制结果按日期

时间:2016-08-17 14:04:34

标签: mongodb date go

我有一个mongodb集合,我试图限制结果集,但数据是由其他人创建的,日期格式似乎存储为“2016-05-12 00:00:00.000Z”。我不确定如何格式化查找查询以限制此类日期。我已成功使用其他类型的日期格式,但不是这个。还有其他人遇到过这个问题吗?

myCollection {
  "_id" : {
    "$oid" : bson.ObjectId
  },
  "createdDate" : {
    "$date" : Date
} 

这就是我的尝试。

toDate := time.Date(time.Now().Year(), time.Now().Month(), time.Now().Day(), 0, 0, 0, 0, time.UTC)
fromDate := toDate.AddDate(0, 0, -1)

collectionResult := collectionRecords.Find(bson.M{"retailer": result.Id, "createdAt": bson.M{"$gte": fromDate}})

最后,我想限制为一天,并试图做以下事情:

collectionResult := collectionRecords.Find(bson.M{"retailer": result.Id, "createdAt": bson.M{"$gte": fromDate, "$lt": toDate}})
collectionResult.All(&collectionData)
collectionCount, _ := collectionResult.Count()
fmt.Println("Count: ", collectionCount)

它总是返回0.就像我上面说的那样,我已经成功使用UTC日期,但是这个似乎让我感到麻烦。

2 个答案:

答案 0 :(得分:0)

如果我理解了这个问题,您是否正在寻找如何在过去24小时内创建UTC时间戳的时间段?

您可以尝试过滤这些日期:

package main

import (
    "fmt"
    "time"
)

func main() {
    today := time.Now().Truncate(24*time.Hour).UTC()
    yesterday := today.Add(-24*time.Hour)
    fmt.Println(today)
    fmt.Println(yesterday)
}

答案 1 :(得分:0)

以上帖子中的代码实际上适用于" Zulu"日期时间戳。这不是问题。