我在解析中有这两个类
这是我的TestItem类,它有可用的项目。然后我有我的UserFavorites类:
它包含用户已收藏的项目。正如你所看到的,Buffalo Waffle Fries和Shrimp Po Boy都属于这两个类别。在UserFavs中,我有一个从UserFav中的项目到TestItem中的项目的指针,因此我可以将它们与此问题无关的目的进行匹配。我的问题是,TestItem类中的项目被删除,每天都会添加新的项目。所以testItem中的指针不再有效。所以我再也无法与之匹敌了。正如你所看到的,我手动更新了Shrimp Po Boy的指针,只是为了表明这一点。我的javascript代码需要一些帮助,它会将TestItem中的项与UserFav中的项匹配。然后更新UserFav中的指针以匹配TestItem类中的objectId。如果不要求我澄清,我希望这是有道理的。也有可能不止一个用户喜欢同一个项目,所以我需要它来更新指向TestItem类的两个指针。
到目前为止,我正在使用的是什么:
Parse.Cloud.define("updateUserFavPointerToTestItem", function(request, response) {
var TestItem = Parse.Object.extend("TestItem");
var UserFav = Parse.Object.extend("UserFavourite");
var testItemsQuery = new Parse.Query(TestItem);
var userFavoritesQuery = new Parse.Query(UserFav);
testItemsQuery.find().then(function(testItemRes) {
for (var i = 0; i < testItemRes.lenght; i++) {
var item = testItemRes.get('item');
userFavoritesQuery.equalTo('item', item);
userFavoritesQuery.then(function(userFavoritesRes) {
for (var i2 = 0; i2 < userFavoritesRes.length; i2++) {
//update the testItem pointer here
//but this doesnt work, I think its because the query is async
//But I am using .then, so maybe I need some promises?
}
});
}
});
});
非常感谢您的帮助!
答案 0 :(得分:1)
有几件事:
代码示例:
Parse.Cloud.define(
"updateUserFavPointerToTestItem",
function(request, response) {
var TestItem = Parse.Object.extend("TestItem");
var UserFav = Parse.Object.extend("UserFavourite");
var testItemsQuery = new Parse.Query(TestItem);
var userFavoriteObjectsToSave = [];
testItemsQuery.each(function(testItem) {
var item = testItem.get('item');
var userFavoritesQuery = new Parse.Query(UserFav);
userFavoritesQuery.equalTo('item', item);
return userFavoritesQuery.each(function(userFavorite) {
userFavorite.set('testItem', testItemRes);
userFavoriteObjectsToSave.push(userFavorite);
});
}).then(function () {
Parse.Object.saveAll(userFavoriteObjectsToSave);
});
});
答案 1 :(得分:1)
这应该可以解决问题
Parse.Cloud.define(
"updateUserFavPointerToTestItem",
function(request, response) {
var TestItem = Parse.Object.extend("TestItem");
var UserFav = Parse.Object.extend("UserFavourite");
var testItemsQuery = new Parse.Query(TestItem);
var userFavoriteObjectsToSave = [];
}).then(function () {
Parse.Object.saveAll(Save);
});
});
我只是调整了我使用的内容。