$dateToString в mgo не работает

Я писал код на Go. У меня есть запрос mongodb в mgo, из-за которого я занят 3 дня и все еще борюсь с ним.

Хотя запрос с оболочкой mongo работает, запрос mongodb с mgo не работает.

Ниже запрос и результат сделаны с помощью оболочки 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?


person laeshiny    schedule 20.09.2016    source источник
comment
Возможно, вы поместили прецент % в строку формата %Y%m%d%, что сделает ее недействительной. Еще одна быстрая проверка значений fromDay и toDay.   -  person Mario Santini    schedule 20.09.2016
comment
Я изменил строку формата и fromDay на Day, но это не работает.   -  person laeshiny    schedule 21.09.2016
comment
Если передать дату: $date вместо даты: $dateToString : .... запроса проекта к mongodb, это работает.   -  person laeshiny    schedule 21.09.2016


Ответы (1)


Я решил это. Это была моя ошибка. Я публикую ответ, чтобы никто не сделал ошибку, как я. Я не менял тип переменной с «time.Time» на «string», как показано ниже.

//Old
type content struct {
    Date  time.Time `bson:"date" json:"date"`
}

//New
type content struct {
    Date  string `bson:"date" json:"date"`
}

Спасибо :)

person laeshiny    schedule 23.09.2016