我的模式:
Match:
scheduledBy (Pointer to user)
scheduledWith (Pointer to user)
Photo:
owner (Pointer to user)
我想为没有匹配项的用户查找照片。
我尝试过的事情:
let photoQuery = new Parse.Query(MODEL.Photo.className());
photoQuery.include('owner');
// Do not include people who have matches
let matchQuery = new Parse.Query(MODEL.Match.className());
photoQuery.doesNotMatchKeyInQuery('owner', 'scheduledBy', matchQuery);
photoQuery.doesNotMatchKeyInQuery('owner', 'scheduledWith', matchQuery);
// Get final results
return photoQuery.find()
这仅适用于scheduleBy列。
由于某些奇怪的原因,您似乎无法使用相同的键和查询但使用不同的查询键来执行dosNotMatchKeyInQuery。
任何人都可以确认吗?如果是这样,什么是最好的选择?
我删除了cheduleBy,只使用了cheduleWith,效果也很好。因此,我认为数据并没有什么问题,这是Parse的错误。
答案 0 :(得分:0)
我认为您走在正确的道路上,但我认为问题在于使用单个内部查询来限定主查询中的两个字段。这有点预感,但是我想您会得到想要的结果……
// use a distinct instance of an inner query for each test in the outer query
let matchQueryBy = new Parse.Query(MODEL.Match.className());
let matchQueryWith = new Parse.Query(MODEL.Match.className());
photoQuery.doesNotMatchKeyInQuery('owner', 'scheduledBy', matchQueryBy);
photoQuery.doesNotMatchKeyInQuery('owner', 'scheduledWith', matchQueryWith);