当我在本地计算机上运行解析时,具有大于和小于的查询不返回任何数据。是否有任何解决方法或我错过了什么
环境设置
在本地计算机上运行。我使用的是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' ] }
答案 0 :(得分:0)
事实证明,parse-server和parse.com后端代码存在一些差异。所以parse.com会以某种方式自动将updatedAt字段转换为Date类型,但是当我们运行parse-server时,我们需要从我们的云代码转换它们。