1
私はGoにコードを書き込みました。私はmgoでmongodbのクエリを持っているので、私は3日間忙しくて、まだそれと戦っています。
mongoシェルを使用したクエリは機能しますが、mgoを使用したmongodbクエリは機能しません。
以下のクエリと結果はmongoシェルで作成されています。
// 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を正しく動作させるにはどうすればよいですか?
はたぶん、あなたはそれを無効にフォーマット文字列* "%のY%mの%dの%" *、中prencent *%*を置きます。 * fromDay *と* toDay *値の別の高速チェック。 –
フォーマット文字列とfromDayをDayに変更しましたが、動作しません。 – laeshiny
"date"を渡す場合: "date"ではなく "$ date": "$ dateToString":.... proejctをmongodbに問い合わせると動作します。 – laeshiny