我在解析这两个类
这是我的TestItem类,它具有可用的项目。然后,我有我的UserFavorites类:
它具有用户喜欢的项目。如您所见,布法罗华夫薯条和虾宝男孩都在这两个班上。在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?
}
});
}
});
});
非常感谢您的事先帮助!
最佳答案
有两件事:
您必须为每次迭代创建新的查询实例。由于所有这些都是异步发生的,因此尝试重用同一查询对象并重置“项目”肯定会导致问题。
查询对象本身不是“可以那么”的。也许您忘了在那里写“ find()”?
使用正确的对象更新userFavorite的testItem字段
更新项目后,将其推送到数组,以便可以使用saveAll
代码示例:
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);
});
});
关于javascript - Javascript-查询parse.com的匹配项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25875210/