0

このガイドに従って、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");
                ...
            }
        }
        ...
    });
});
4

2 に答える 2

0

コード (クエリ部分の構成) にタイプミスがある可能性があります。代わりにこれを試してください:

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);
    }
  });
});
于 2016-02-27T00:16:38.017 に答える
0

問題は、Parse から mongolab でホストされている MongoDB インスタンスにデータを移行したときに、Parse 移行ウィザードで [完了] ボタンをクリックしなかったことです。これは意図的なものでした。[ファイナライズ] をクリックすると移行が永続的になり、Parse が管理するデータベースに戻れなくなると Parse が警告していたからです。一方、すべてのデータが mongolab に正常に移行されたことを確認できました。技術的には、AWS がホストする解析サーバーをこの新しいデータベースで問題なく動作させるだけで十分だったはずです。しかし、どういうわけか、Parse の [Finalize] ボタンをクリックすると魔法がかかり (それが何であるかはまだわかりません)、クエリが期待される結果を返し始めました。

Herokuへの移行でも同様の問題が再現できたので、AWSとは関係ないと確信していました。

これが誰かを助けることを願っています。

于 2016-02-29T13:45:39.157 に答える