を見逃す失敗したMgO -Golang +は時間を使用しているときにMongoDBを照会することは、私は私のMongoDBからいくつかのデータを取得するには、次のコードを持っているので、「ISODate」
currentDate := time.Now().Format(time.RFC3339)
content := database.FindDocuments("content", bson.M{ "$and": []bson.M{ bson.M{"start_date": bson.M{"$lte": currentDate}}, bson.M{"end_date": bson.M{ "$gte": currentDate}}, }})
FindDocumentsを私に[]map[string]interface{}
を与える基本的にMgoSession.DB(Dbname).C(collectionName).Find(query).All(&result)
です。
(CURRENTDATE変数によって返された値と同じ値を使用して)Mongoのコンソールでのに対し、これは、私にはnullを与える -
{ "start_date": { $lt: ISODate("2016-09-08T13:05:24+05:30") }, $and: [ { "end_date": { $gt: ISODate("2016-09-08T13:05:24+05:30") } } ] }
私を返す -
{
"_id" : ObjectId("57cff2bc32291a1fa0e79e90"),
"image_url" : "www.example.com",
"title" : "This is a new content",
"start_date" : ISODate("2016-09-06T10:58:54.701+0000"),
"end_date" : ISODate("2016-09-10T10:59:04.447+0000"),
"type" : "content"
}
なぜこの問題が来ています正しい時刻形式を使用していますか?ただ
currentDate := time.Now()
が動作するはずですので
こんにちは!それは正確に日付を取得しないことではありません。 mongoコンソールのクエリでは、私は自分のプログラムコンソールから見たcurrentDateによって返された値を貼り付けてコピーしただけです。 この値を使用する場合、返される時間値は1473326105000であり、応答はまだNULLです。 –
{"start_date":{$ lt:1473326105000}、$ and:{{"end_date":{$ gt:1473326105000}}}はコンソールで動作しますか?多分、mongoのドキュメントはミリ秒ほど間違っているかもしれません。 Unix()またはコンソール{"start_date":{$ lt:1473326105}、$ and:{{"end_date":{$ gt:1473326105}}} – Uvelichitel
の両方について、currentDate:= time.Now()これらは、mongoコンソールでヌルを返す:( –