Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取列表时Node.Js MongoDB格式化日期_Node.js_Mongodb_Mongoose_Mongodb Query_Aggregation Framework - Fatal编程技术网

获取列表时Node.Js MongoDB格式化日期

获取列表时Node.Js MongoDB格式化日期,node.js,mongodb,mongoose,mongodb-query,aggregation-framework,Node.js,Mongodb,Mongoose,Mongodb Query,Aggregation Framework,我是Node.Js和MongoDB的新手。我以CreatedDate获取日期:2018-09-06T06:14:53.111Z。在输出中,我试图显示为“MM/DD/YYYY” 这是我的代码,我正在收集最近60天的数据表 var today = new Date(); today.setDate(today.getDate() - 60); ODSCase.find({ UserGUID: req.UserGUID ,CreatedDate:{"$gte":new Date(

我是Node.Js和MongoDB的新手。我以CreatedDate获取日期:2018-09-06T06:14:53.111Z。在输出中,我试图显示为“MM/DD/YYYY”

这是我的代码,我正在收集最近60天的数据表

 var today = new Date();

    today.setDate(today.getDate() - 60);

    ODSCase.find({ UserGUID: req.UserGUID ,CreatedDate:{"$gte":new Date(today)} }).sort({ModifiedDate: -1})
   .exec()
   .then(doc => {
       res.status(200).json(doc);
   })
   .catch(err =>{ err500.err500(err,req,res,next);});
输出:

 {

    "_id": "5b9242aed7ae250c74325362",
    "CustomerGUID": "ee1ac5c7-c0f9-466c-8859-95dc1fcd0334",
    "InstanceGUID": "878aee54-1b95-46d1-9e26-b9eaea9f9cd4",
    "UserGUID": "f0272467-3ec5-48f7-5553-987900b57a11",
    "CaseNumber": 1536311981016,
    "CaseStatus": "New",
    "CampaignID": "66336533-3765-3266-4d43-382f392f3230",
    "CreatedDate": "2018-09-07T09:19:42.586Z",
    "CreatedBy": "f0272467-3ec5-48f7-5553-987900b57a11",
    "ModifiedDate": "2018-09-07T09:19:42.586Z",
    "ModifiedBy": "f0272467-3ec5-48f7-5553-987900b57a11",
    "IsDeleted": false,
    "Source": "Dev",
    "__v": 0
},

考虑运行聚合管道,这样可以使用诸如之类的运算符将日期转换为所需格式

例如,可以使用聚合框架运行上述相同的查询,如下所示:

let today = new Date();
today.setDate(today.getDate() - 60);

const date = new Date(today);

ODSCase.aggregate([
    { '$match': { 
        'UserGUID': req.UserGUID,
        'CreatedDate': { '$gte': date } 
    } },
    { '$sort': { 'ModifiedDate': -1 } },
    { '$addFields': {
        'CreatedDate': { 
            '$dateToString': { 
                'format': '%m/%d/%Y', 
                'date': '$CreatedDate' 
            }
        }
    } } 
])
.exec()
.then(doc => {
    res.status(200).json(doc);
})
.catch(err => err500.err500(err, req, res, next) );
您还可以使用“卓越”创建查询中使用的日期对象:

const moment = require('moment');
const date = moment().subtract(60, 'days').toDate(); // or...
const date = moment().add(-60, 'days').toDate();

我假设您只想处理输出中当前为ISO字符串的日期格式,使其成为mm/dd/yyyy格式,您可以尝试以下方法:

var today = new Date();

    today.setDate(today.getDate() - 60);

    ODSCase.find({ UserGUID: req.UserGUID ,CreatedDate:{"$gte":new Date(today)} }).sort({ModifiedDate: -1})
   .exec()
   .then(doc => {
       doc.CreatedDate = new Date(doc.CreatedDate).toLocaleDateString('en-US');
       res.status(200).json(doc);
   })
   .catch(err =>{ err500.err500(err,req,res,next);});

使用ODM作为mongoose,您可以重写方法toObject,为某些属性提供格式。另一个选项是在使用map之前,使用Hi Ashish等模块给出格式,输出无变化:“CreatedDate”:“2018-09-07T09:19:42.586Z”,答案已编辑。有一个输入错误,抱歉。嗨,chridam,我收到“错误”:“此帐户未启用聚合管道。有关详细信息,请参阅。”。我正在尝试在Azure门户中设置聚合启用。。我会试试这个,让你知道。非常感谢。