我想在我的控制器中有一个功能来根据时间范围获取数据。首先,我拥有mongodb中的所有数据,有一个属性ModifiedTime,字符串看起来像2015-02-25T17:17:33Z
。其次,我使用ModifiedTime在帆中定义模型:
{ type: 'datetime', columnName: 'ModifiedTime' }
在model.js中,我设置了schema: true
。然后在我的控制器中,我尝试使用
User.find({ModifiedTime : {'<=' : new Date('2015-03-18T00:00:00Z')}}).exec(function(err,st){
if (err) return res(err);
if (!st) return res(new Error('Invalid ModifiedTime.'));
return res.json(st);
} );
但我什么都没得到,请在浏览中一直看[]。我使用水线http://localhost:1337/User来检查浏览中的数据。我可以看到来自mongodb的所有数据。奇怪的是,我看到ModifiedTime": "2015-02-18T17:36:53Z
之类的东西。所以,对我来说,看起来帆中的ModifiedTime仍然是一个字符串,我是对的吗?但我将类型设置为模型中的日期时间。我希望,它可以将mongodb的字符串传输到后台的日期时间,赢了吗?请给出一些建议。我已经花了太多时间:(
非常感谢你!
WJS
答案 0 :(得分:0)
你是对还是错。
在您的数据库中,您声明日期时间是一个字符串。如果它已经是一个字符串,那么你就不能将它设置为你的风帆模型中的日期。您应该简单地比较两个字符串,而不是将2015-03-18T00:00:00Z
转换为日期。
User.find({ModifiedTime : {'<=' : '2015-03-18T00:00:00Z'}}).exec(function(err,st){
if (err) return res(err);
if (!st) return res(new Error('Invalid ModifiedTime.'));
return res.json(st);
} );
如果您想要使用日期/时间,那么您必须浏览原始数据并将修改时间更改为日期/时间对象。