gpt4 book ai didi

mongodb - 如何使用 mgo 和 Go 查询 MongoDB 的日期范围?

转载 作者:IT老高 更新时间:2023-10-28 13:05:03 28 4
gpt4 key购买 nike

您好,我有一个名为“my_sales”的集合,其中包含产品名称、价格、销售日期等字段。

我的文档看起来像

{
"_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")
}

我在 mongo shell 中试过这样

 db.my_sales.find({ sale_date: { $gt: ISODate("2014-11-04"), $lt: new ISODate("2014-11-05") });

它给出了正确的结果。现在我需要使用 golang 查询相同的东西我试过这样

 var sales_his []Sale
err := c.Find(bson.M{"sale_date":bson.M{ "$gt": "ISODate("+date_from+")", "$lt": "ISODate("+date_to+")" } }).All(&sales_his)

它给出空结果请帮助

最佳答案

mgo 支持 time.Time对于 BSON 日期。

如果你的结构是这样的:

type Sale struct {
ProductName string `bson:"product_name"`
Price int `bson:"price"`
SaleDate time.Time `bson:"sale_date"`
}

然后你可以这样查询:

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)

关于mongodb - 如何使用 mgo 和 Go 查询 MongoDB 的日期范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26773979/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com