2015-12-02 101 views
0

我有一个“日志”表有一个指向用户表中的用户的指针。我正在尝试“查找所有用户在过去N天内没有日志条目”。但是,以下查询似乎返回全部用户而不是预期值。如何在Parse.com查询中找到所有用户*不是*?

这里是我当前的查询:

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

是'log'类的'用户'属性指针还是字符串? – hhanesand

+0

@hhanesand一个指针 – gregory

回答

0

您的查询匹配对字符串的指针( '用户')( 'OBJECTID')。这就是它返回所有结果的原因。

也许改变

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

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

我不知道它是否支持keypaths虽然没有测试。

+0

这不起作用 –

相关问题