我有一个“Logs”表,它在User表中有一个指向User的指针。我正在尝试“查找最近N天没有日志条目的所有用户”。但是,以下查询似乎返回所有用户而不是预期值。
这是我当前的查询:
var logsFrom = function(start, end) {
// Query for all logs within the last 24 hours
var Log = Parse.Object.extend("Log");
var query = new Parse.Query(Log);
query.greaterThanOrEqualTo("createdAt", start);
query.lessThan("createdAt", end);
return query;
};
var nonLogsFound = function(request, response) {
Parse.Cloud.useMasterKey();
// Midnight of the current day
var end = new Date();
end.setHours(0, 0, 0, 0);
// Midnight of the previous day
var time = (5 * 24 * 3600 * 1000);
var start = new Date(end.getTime() - (time));
var count = 0;
var logQuery = logsFrom(start, end);
var userQuery = new Parse.Query(Parse.User);
userQuery.doesNotMatchKeyInQuery("objectId", "user", logQuery);
userQuery.find({
success: function(users) {
// This returns *all* users.
count = users.length;
response.success("Query complete! (" + count + " results)");
},
error: function(error) {
console.error(error);
response.error(error);
}
});
};
由于
答案 0 :(得分:0)
您的查询是将指针('用户')与字符串匹配(' objectId')。这就是为什么它会返回所有结果。
可能会改变
userQuery.doesNotMatchKeyInQuery("objectId", "user", logQuery);
到
userQuery.doesNotMatchKeyInQuery("objectId", "user.objectId", logQuery);
我不确定它是否支持密钥路径,但尚未经过测试。