2 つの解析クラスがあります。会社と格付け。これは 1 対多の関係です。企業は多くの評価を持つことができます。これは、SQL で実行するステートメントです。
SELECT Companies.name, Ratings.rating
FROM Companies
INNER JOIN Ratings
ON Ratings.name_id = Companies.name_id
ORDER BY Companies.name
これに相当するものを Parse で使用したいのですが、どうすればよいかわかりません。これが私が現在試したことです:
function getRatings() {
var tableA = new Parse.Query(Companies);
var tableB = new Parse.Query(Ratings);
tableB.equalTo("name_id", tableA.name_id);
tableB.find({
success: function(results) {
$scope.$apply(function() {
$scope.companies = results.map(function(obj) {
return {
id: obj.get("name_id"),
name: obj.get(tableA.name),
rating: obj.get("rating"),
parseObject: obj
};
});
});
},
error: function(error) {
alert("Error: " + error.code + " " + error.message);
}
});
}
コントローラーのロード時にこの関数を呼び出しています。このコードは出力に評価を表示しますが、会社名は表示しません。
私は、企業オブジェクトにリストされているすべての企業を取得しようとしており、それらを評価オブジェクトにあるすべての評価とペアにしています。それらの共通キーはname_id
. これは、Angular ビュー内で使用しているコードです。
<div class="span12">
<div ng-repeat="company in companies | filter: query | orderBy: orderList"
class="well company-description">
<h1>{{company.name}}</h1>
<h3>Rating: {{company.rating}}</h3>
</div>
</div>
これに基づいていない場合は、お知らせください