Я не вижу какой-либо сортировки в моих данных при сортировке по полю даты в запросах mongoDb. Поле «date_recorded» является полем даты.
Я также пытался сортировать по полю time_stamp. Похоже, что порядок сортировки не работает независимо от того, идет ли он по возрастанию или по убыванию.
Не могу понять, почему он не работает. Я попробовал это в: - Компас, используя вкладку Aggregate. - Robo3t - VSCode с использованием NodeJs (запрос модели схемы)
Вывод всегда одинаков.
Любая помощь, чтобы получить эту работу будет принята с благодарностью ...
Я искал в Google и пробовал разные вещи около двух часов.
Вот мой запрос:
db.getCollection('inputData').aggregate(
{ $match: { "inputData_userID": { $eq: "user1" } } }
,{ $project: { "date": 1 }}
,{ $sort: { "date_recorded": -1 }}
,function (err, docs) {}
)
Это вывод:
/* 1 */
{
"_id" : "0f30df7453b6096da524d3b61ce75eb1",
"date" : "4/13/2017"
}
/* 2 */
{
"_id" : "081be472b94804ae597706aa2bc4d9f4",
"date" : "4/18/2017"
}
/* 3 */
{
"_id" : "0005933cda516a4df346bf0807ab6ca4",
"date" : "5/19/2017"
}
/* 4 */
{
"_id" : "3a67cc9a5eb0a9197fa5448773bfec88",
"date" : "4/14/2017"
}
/* 5 */
{
"_id" : "1aefe9e79faaf4d65c6194b162311e08",
"date" : "4/13/2017"
}
/* 6 */
{
"_id" : "3f4c9d65c207d5cf620a00cee062a4c8",
"date" : "4/13/2017"
}
Вот еще один запрос:
db.getCollection('inputData').find(
{ "inputData_userID": { $eq: "user1" } }
,{ "_id": 0, "date": 1, "date_recorded": 1 }
,{ $sort: { "date_recorded": -1 }}
)
Вот результат вывода этого запроса:
/* 1 */
{
"date_recorded" : ISODate("2017-04-13T08:54:24.024Z"),
"date" : "4/13/2017"
}
/* 2 */
{
"date_recorded" : ISODate("2017-04-18T22:01:20.767Z"),
"date" : "4/18/2017"
}
/* 3 */
{
"date_recorded" : ISODate("2017-05-19T00:03:03.081Z"),
"date" : "5/19/2017"
}
/* 4 */
{
"date_recorded" : ISODate("2017-04-14T06:12:55.320Z"),
"date" : "4/14/2017"
}
/* 5 */
{
"date_recorded" : ISODate("2017-04-13T23:53:22.692Z"),
"date" : "4/13/2017"
}
/* 6 */
{
"date_recorded" : ISODate("2017-04-13T08:55:38.721Z"),
"date" : "4/13/2017"
}