如何在Parse.com查询中找到所有用户*不*?

时间:2015-12-02 18:04:08

标签: database parse-platform

我有一个“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);
        }
    });
};

由于

1 个答案:

答案 0 :(得分:0)

您的查询是将指针('用户')与字符串匹配(' objectId')。这就是为什么它会返回所有结果。

可能会改变

userQuery.doesNotMatchKeyInQuery("objectId", "user", logQuery);

userQuery.doesNotMatchKeyInQuery("objectId", "user.objectId", logQuery);

我不确定它是否支持密钥路径,但尚未经过测试。