【发布时间】:2019-11-06 05:20:43
【问题描述】:
在 mongoDb 查询中按“日期”字段排序时,我没有看到任何类型的数据排序。 “date_recorded”字段是一个日期字段。
我也尝试过对 time_stamp 字段进行排序。无论是升序还是降序,排序顺序似乎都不起作用。
我似乎无法弄清楚为什么它不起作用。我已经尝试过: - 使用“聚合”选项卡的指南针。 - Robo3t - 使用 NodeJs 的 VSCode(模式模型查询)
输出总是一样的。
我们将不胜感激任何帮助来完成这项工作......
我已经在 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"
}
【问题讨论】:
标签: mongodb mongodb-query aggregation-framework