如何使用parse.com和JavaScript SDK合并多个查询结果?
问题描述:
使用parse.com和JavaScript SDK。如何使用parse.com和JavaScript SDK合并多个查询结果?
我有两个查询都可以工作,但我想将结果合并为一个,这样我就可以在html页面上显示彼此相邻的不同字段。
什么是最好的方法来做到这一点?查询使用不同的类。
我在看用户指南,想用类似复合查询的东西吗?
var mainQuery = Parse.Query.or(queryOne, queryTwo);
但不知道是否需要这样做,如果我实际上可以将它们嵌套它们呢?
查询1
var GlobalBadges = Parse.Object.extend("Global_Badges");
var query = new Parse.Query(GlobalBadges);
query.exists("Global_Badges_img");
query.find({
success: function(results) {
var friends = [];
for (var i = 0; i < results.length; i++) {
friends.push({
imageURL: results[i].get('Global_Badges_img'),
//friendRequestId: results[i].id,
badgename: results[i].get('BadgeName'),
category: results[i].get('category')
});
}
查询2
var toUser = new Parse.User();
toUser.id = toUserId;
var myBadges = Parse.Object.extend("myBadges");
var query = new Parse.Query(myBadges);
query.equalTo("SentTo", toUser);
query.find({
success: function(Badgeresults) {
// If the query is successful, store each image URL in an array of image URL's
var Badges = [];
for (var i = 0; i < Badgeresults.length; i++) {
Badges.push({
imageURL: Badgeresults[i].get('BadgeName'),
AwardedBy: Badgeresults[i].get('uploadedBy').get('username'),
AwardedTo: Badgeresults[i].get('SentTo').get('username'),
comment: Badgeresults[i].get('Comment'),
});
}
答
如果我正确理解你的问题,而你只是需要来呈现两种不同的查询到您的网页结果,最简单的方法将其中一个查询发生在成功回调的其他查询中。像下面这样:
render: function() {
var _this = this;
var productQuery = new Parse.Query('Product');
var itemQuery = new Parse.Query('Item');
productQuery.find({
success: function(products) {
itemQuery.find({
success: function(items) {
_this.$el.html(_this.template({
products: products,
items: items
}));
},
error: function(error) {
// WHATEVER
}
});
},
error: function(error) {
// WHATEVER
}
});
}
我不知道你所说的“巩固成果转化为一个”的意思。这些查询是相关的吗?他们似乎是不同的东西,没有什么共同之处。 – RotaJota 2014-10-16 20:58:16
@ Dano007,你的问题解决了吗? – jeffdill2 2015-12-22 16:20:24