我有一個mongodb集合,我試圖限制結果集,但數據是由其他人創建的,日期格式似乎存儲爲「2016-05-12 00:00 :00.000Z」。我不確定如何格式化查找查詢來限制這種類型的日期。我用其他類型的日期格式取得了成功,但不是這一次。有其他人遇到過這個問題嗎?mongodb golang限制結果的日期
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日期,但這個似乎困擾着我。
您是否問過如何創建time.Time過去24小時以及UTC,可能會截斷時間?或者你問如何解析時間戳字符串?或者如何篩選將時間戳存儲爲字符串的記錄? – baloo
我知道如何創建一個timeStamp,但是time.Time對象要麼使用time.Local要麼是time.UTC,這個值既不是。所以,當我試圖限制mongodb結果集時,看起來沒有記錄。如果日期存儲爲UTC或本地,那麼這將是一個簡單的解決方案。 如何讓mongodb在執行$ gte或$ lt調用時忽略時間戳記是我正在尋找的。 – CRob
「祖魯語時區通常用於航空和軍事中,作爲UTC +0的另一個名稱」。所以有效的日期你看到的是UTC時間戳,最後'Z'表示這是你所擁有的。 – baloo