Parse-Server 云代码查询不返回所有列
Posted
技术标签:
【中文标题】Parse-Server 云代码查询不返回所有列【英文标题】:Parse-Server Cloud Code Query Doesn't Return All Columns 【发布时间】:2016-02-14 14:06:02 【问题描述】:我已按照 this 指南在 AWS Elastic Beanstalk 上设置 Parse-Server。然后我编写了一个云代码函数,它从特定的类/集合中获取一条记录。该集合包含大约 20 列。但是,作为查询结果获取的对象仅包含大约 8 列。我已确保记录中确实包含查询遗漏的列中的数据。我在这里遗漏了什么还是 Parse 中的某些限制?有没有办法强制 Parse 获取这些列?
Parse.Cloud.define('confirmAppointment', function(request, response)
var staffId = request.params.staffId;
var appointmentId = request.params.appointmentId;
var appointmentRequest = Parse.Object.extend("AppointmentRequest");
appointmentRequest.id = appointmentId;
appointmentRequest.staffId = staffId;
var query = new Parse.Query(appointmentRequest);
query.first(
useMasterKey: true,
success: function(appointment)
if (appointment)
// these fields are not found in the fetched appointment object
// they do exist however in mongodb
var requesterUserId = appointment.get("requesterUserId");
var staffUserId = appointment.get("staffUserId");
var staffName = appointment.get("staffNameEn");
...
...
);
);
【问题讨论】:
缺失的列是指向其他对象的指针类型吗? 没有。有的是字符串类型,有的是数值类型。 【参考方案1】:您的代码中可能有一些拼写错误(查询部分的构造)。试试这个:
Parse.Cloud.define('confirmAppointment', function(req, res)
var staffId = req.params.staffId;
var appointmentId = req.params.appointmentId;
var query = new Parse.Query("AppointmentRequest");
query.equalTo('objectId', appointmentId);
query.equalTo('staffId', staffId);
query.first(
useMasterKey: true,
success: function(appointment)
res.success(appointment.get("requesterUserId"));
,
error: function(err)
res.error(err);
);
);
【讨论】:
谢谢西蒙,这个查询确实有一些错别字,我后来更正了。但真正的问题是我没有点击 Parse 数据库迁移向导中的 Finalize 按钮。【参考方案2】:问题原来是当我将数据从 Parse 迁移到我的 mongolab 托管的 MongoDB 实例时,我没有在 Parse 迁移向导中单击“完成”按钮。这是故意的,因为 Parse 警告我单击“完成”将使迁移永久化,并且我将无法再返回到 Parse 托管数据库。另一方面,我可以看到所有数据都已成功迁移到 mongolab,从技术上讲,我的 AWS 托管解析服务器应该足以在这个新数据库上运行而没有任何问题。但不知何故,单击 Parse 中的“Finalize”按钮做了一些魔术(我仍然不明白它可能是什么),我的查询开始返回预期的结果。
我在迁移到 Heroku 时也能重现同样的问题,所以我确信这与 AWS 无关。
希望这会对某人有所帮助。
【讨论】:
以上是关于Parse-Server 云代码查询不返回所有列的主要内容,如果未能解决你的问题,请参考以下文章
Parse-Server iOS SDK - 创建返回 PFQuery 结果的函数
如何使用 Typescript 而不是 Javascript 在解析服务器中编写云代码?
如何使用 php parse-server sdk 将 ParseQuery::orQueries 与 matchQuery 结合起来