Hi I have a collection named "my_sales" having fields product_name, price, sale_date.
My doc looks like
{
"_id" : ObjectId("5458b6ee09d76eb7326df3a4"),
"product_name" : product1,
"price" : 200,
"sale_date" : ISODate("2014-11-04T11:22:19.589Z")
}
{
"_id" : ObjectId("5458b6ee09d76eb7326df3a4"),
"product_name" : product1,
"price" : 200,
"sale_date" : ISODate("2014-11-04T11:22:19.589Z")
}
{
"_id" : ObjectId("5458b6ee09d76eb7326df3a4"),
"product_name" : product1,
"price" : 200,
"sale_date" : ISODate("2014-11-04T11:22:19.589Z")
}
{
"_id" : ObjectId("5458b6ee09d76eb7326df3a4"),
"product_name" : product1,
"price" : 200,
"sale_date" : ISODate("2014-11-05T11:22:19.589Z")
}
I tried in mongo shell like this
db.my_sales.find({ sale_date: { $gt: ISODate("2014-11-04"), $lt: new ISODate("2014-11-05") });
It giving the correct result. Now I need to query same thing using golang I tried like this
var sales_his []Sale
err := c.Find(bson.M{"sale_date":bson.M{ "$gt": "ISODate("+date_from+")", "$lt": "ISODate("+date_to+")" } }).All(&sales_his)
Its giving null result please help
mgo supports time.Time for BSON dates.
So if your struct looks like this:
type Sale struct {
ProductName string `bson:"product_name"`
Price int `bson:"price"`
SaleDate time.Time `bson:"sale_date"`
}
Then you can query it like this:
fromDate := time.Date(2014, time.November, 4, 0, 0, 0, 0, time.UTC)
toDate := time.Date(2014, time.November, 5, 0, 0, 0, 0, time.UTC)
var sales_his []Sale
err = c.Find(
bson.M{
"sale_date": bson.M{
"$gt": fromDate,
"$lt": toDate,
},
}).All(&sales_his)