在使用日期字段的查询中使用greaterThan和lessThan解析服务器问题

时间:2016-04-12 11:22:28

标签: parse-platform

当我在本地计算机上运行解析时,具有大于和小于的查询不返回任何数据。是否有任何解决方法或我错过了什么

环境设置

在本地计算机上运行。我使用的是parse-server@2.2.6,node @ v4.4.2,mongo 3.2.4。 我在ec2中设置了mongo db。

重现的步骤

我在parse.com云代码和我的本地服务器上运行测试。 这是我正在运行的代码

Parse.Cloud.define("lessthangreatthan", function (request, response){
    var userActivityQuery = new Parse.Query("Activity");
    var updatedAt = request.params.updatedAt;
    var activityQuery = new Parse.Query("Activity");
    activityQuery.greaterThan("updatedAt", updatedAt);
    activityQuery.descending("updatedAt").limit(4);
    console.log(updatedAt);
    console.log(activityQuery);
    return activityQuery.find().then(function (activities) {
        response.success(activities);
    },function(err){
        response.error(err.message);
    });
});

当我在parse.com上运行时,我得到了我的结果,但在本地解析服务器上运行时它返回一个空。

当我在parse.com上运行时,这是activityQuery的console.log:

{"where":{"updatedAt":{"$gt":"2016-04-11T10:35:58.411Z"}},"limit":4,"order":"-updatedAt"} 

这是我在本地解析服务器上运行时activityQuery的console.log:

ParseQuery { className: 'Activity',_where: { updatedAt: { '$gt': '2016-04-11T10:35:58.411Z' } },_include: [],_limit: 4,_skip: 0,_extraOptions: {}, _order: [ '-updatedAt' ] }

1 个答案:

答案 0 :(得分:0)

事实证明,parse-server和parse.com后端代码存在一些差异。所以parse.com会以某种方式自动将updatedAt字段转换为Date类型,但是当我们运行parse-server时,我们需要从我们的云代码转换它们。