MongoDB按日期排序为字符串类型

时间:2018-08-08 07:45:57

标签: mongodb

有人可以帮助我按日期对数组进行升序排序的查询吗? 我已经尝试过以下查询,但排序未按预期进行,

db.getCollection(xyz).aggregate([{

       $match: {
          "_id":{$in:[{"a" : "NA","b" : "HXYZ","c" : "12345","d" : "AA"}]}
                     }
                   },{
                       $sort: {'bal.date': 1}
                   },

                   { $project: {
            balances: { $slice: ["$bal",2]} 

                        }

             }

                  ])

我的收藏集:

/* 1 */
{
    "_id" : {
        "a" : "NA",
        "b" : "HXYZ",
        "c" : "12345",
        "d" : "AA"
    },


       "bal" : [
     {
            "type" : "E",
            "date" : "2015-08-02"

    },

    {
            "type" : "E",
            "date" : "2015-08-01"


    },
     {
            "type" : "E",
            "date" : "2015-07-07"


    }

 ]
 }

请帮助我上述查询中出现的问题。 预先感谢。

2 个答案:

答案 0 :(得分:0)

从外观上看,您将日期另存为String, sort()函数会将日期排序为 Strings ,这不会给您订单您正在期待。

您可以运行将 bal.date 字段转换为Date()格式的脚本,然后sort()将自动运行,也可以在转换+排序服务器端进行操作。 / p>

答案 1 :(得分:0)

您正在将window.open()focus()阶段

针对已使用的聚合管道阶段纠正语法

$match