node.js - 解析云代码 DoesNotMatchKey
问题描述
我的架构:
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 列。
似乎由于某些奇怪的原因,您不能使用相同的键和查询但不同的查询键来执行 doesNotMatchKeyInQuery 。
谁能证实这一点?如果是这样,最好的选择是什么?
我删除了scheduledBy,只使用了scheduledWith,效果也很好。所以数据没有问题,我相信它是 Parse 的一个错误。
解决方案
我认为您走在正确的轨道上,但我认为问题在于使用单个内部查询来限定主查询上的两个字段。这更像是一种预感,但我认为你会得到你所寻求的结果......
// 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);
推荐阅读
- reactjs - 如何将新对象放入状态对象数组中
- reactjs - 当我尝试在 Dockerfile 中执行构建命令时它返回-> 命令“/bin/sh -c npm install”返回一个非零代码:1
- javascript - 有没有办法通过减少对 chrome.storage 的写入操作次数来最小化 CPU 使用率?
- bash - 如何解决 Solaris 中的 Awk 和 Top 错误
- dart - Dart - 如何检查我的列表是否具有与部门 ID 相同的值?
- php - 在 laravel 中创建类别和子类别
- jquery - 在 Elementor Pro 弹出窗口中使用联系表 7 的问题
- javascript - 音乐机器人问题 discord.js
- cursor - 如何检测键盘中选择的语言
- html - 使用 Thymeleaf 显示图像 - Spring Boot