我在Go中编写了代码。我在mgo中有一个mongodb查询,这使我忙了3天,仍然在与之抗争。
尽管使用mongo shell的查询有效,但使用mgo的mongodb查询不起作用。
下面的查询和结果是用mongo shell编写的。
// Query
db.getCollection("TEST").aggregate([
{
"$match": {
"date": {"$gte": new Date("2016-06-28"), "$lte": new Date("2016-06-29")},
}
},
{
"$project": {
"_id": false,
"date": {"$dateToString": {"format": "%Y%m%d", "date":"$date"}},
},
},
]);
// Result
{
"date" : "20160628",
}
{
"date" : "20160629",
}
下面的查询和结果是用mgo进行的。没用
// Query
matchQuery := bson.M{}
matchQuery["date"] = bson.M{
"$gte": time.Date(2016, 6, 28, 0, 0, 0, 0, time.UTC),
"$lte": time.Date(2016, 6, 29, 23, 59, 59, 0, time.UTC),
}
projectQuery := bson.M{
"_id": false,
"date": bson.M{
"$dateToString": bson.M{"format": "%Y%m%d", "date": "$date"},
},
}
pipeline := []bson.M{
{"$match": matchQuery},
{"$project": projectQuery},
}
// Result
{
"date": "0001-01-01T00:00:00Z",
},
{
"date": "0001-01-01T00:00:00Z",
}
如何正确使用$ dateToString?
最佳答案
我解决了是我的错我发布答案,这样任何人都不会犯我这样的错误。我没有将变量类型从“time.Time”更改为“string”,如下所示。
//Old
type content struct {
Date time.Time `bson:"date" json:"date"`
}
//New
type content struct {
Date string `bson:"date" json:"date"`
}
谢谢 :)
关于mongodb - $ oto中的$ dateToString不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39584791/